2010-05-08 32 views
2

seam iText集成似乎使用旧版本的iText jars,是否有可能使用最新的iText 5.0.2特定jar作为maven依赖项的一部分。有没有人做过这个?seam iText集成库

http://repository.jboss.org/maven2/org/jboss/seam/jboss-seam-pdf/2.2.0.GA/jboss-seam-pdf-2.2.0.GA.pomhttp://repository.jboss.org/maven2/com/lowagie/itext/2.1.2/itext-2.1.2.pom

下面的相关使用2.1.2版的iText的,不知道如何使其使用iText的最新版本5.0.2。

 <dependency> 
      <groupId>org.jboss.seam</groupId> 
      <artifactId>jboss-seam-pdf</artifactId> 
      <version>${jboss-seam.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.jboss.seam</groupId> 
        <artifactId>jboss-seam</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.jboss.seam</groupId> 
        <artifactId>jboss-seam-ui</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

回答

4

下面的相关使用2.1.2版的iText的,不知道如何使其使用iText的最新版本5.0.2。

首先,jboss-seam-pdf-2.2.0.GA.jar具有以下依存关系(跳过排除,请参阅根POM org.jboss.seam:root:2.2.0.GA.pom的全部细节):

<dependency> 
    <groupId>com.lowagie</groupId> 
    <artifactId>itext</artifactId> 
    <version>2.1.2</version> 
    ... 
</dependency> 
<dependency> 
    <groupId>com.lowagie</groupId> 
    <artifactId>itext-rtf</artifactId> 
    <version>2.1.2</version> 
    ... 
</dependency> 

其次,只有iText的5.0.2神器我能找到的是在this thread提到的(和可用的存储库中的http://maven.itextpdf.com/):

<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>itextpdf</artifactId> 
    <version>5.0.2</version> 
</dependency> 

甲我们可以看到它有不同的groupIdartifactId比以前的itext依赖关系,所以我们不能在这里使用Maven的dependencyManagement来强制使用这个版本(假设这个工件替换了前一个,我对此不知道)。所以这给我们留下了exclusions。事情是这样的:

<project> 
    ... 
    <properties> 
    <jboss-seam.version>2.2.0.GA</jboss-seam.version> 
    </properties> 
    <repositories> 
    <repository> 
     <id>itext</id> 
     <url>http://maven.itextpdf.com</url> 
    </repository> 
    <repository> 
     <id>jboss</id> 
     <url>http://repository.jboss.org/maven2</url> 
    </repository> 
    </repositories> 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>org.jboss.seam</groupId> 
     <artifactId>jboss-seam-pdf</artifactId> 
     <version>${jboss-seam.version}</version> 
     <exclusions> 
     <exclusion> 
      <groupId>org.jboss.seam</groupId> 
      <artifactId>jboss-seam</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.jboss.seam</groupId> 
      <artifactId>jboss-seam-ui</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.lowagie</groupId> 
      <artifactId>itext</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.lowagie</groupId> 
      <artifactId>itext-rtf</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>itextpdf</artifactId> 
     <version>5.0.2</version> 
    </dependency> 
    </dependencies> 
</project> 

有了这个POM的依赖关系树变为:

 
$ mvn dependency:tree 
... 
[INFO] [dependency:tree {execution: default-cli}] 
[INFO] com.statckoverflow:Q2793234:jar:1.0-SNAPSHOT 
[INFO] +- junit:junit:jar:3.8.1:test 
[INFO] +- org.jboss.seam:jboss-seam-pdf:jar:2.2.0.GA:compile 
[INFO] | \- com.sun.facelets:jsf-facelets:jar:1.1.15.B1:compile 
[INFO] \- com.itextpdf:itextpdf:jar:5.0.2:compile 
... 

我并不是说这会在运行时的工作,我只是给你一个办法更换的依赖与Maven。

+0

会给这个尝试,让你知道 – Joe 2010-05-08 17:02:32

+0

@Joshua我的回答涵盖了你的问题的Maven部分。代码将在运行时工作吗?我不知道。但这是另一个超出问题范围的故事。 – 2010-05-09 08:29:30

+0

很可能它在运行时不起作用。也许甚至不会编译。 但我认为只是尝试它而不是在这里询问会更快。 – 2010-05-15 02:36:04