下面的相关使用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>
甲我们可以看到它有不同的groupId
和artifactId
比以前的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。
会给这个尝试,让你知道 – Joe 2010-05-08 17:02:32
@Joshua我的回答涵盖了你的问题的Maven部分。代码将在运行时工作吗?我不知道。但这是另一个超出问题范围的故事。 – 2010-05-09 08:29:30
很可能它在运行时不起作用。也许甚至不会编译。 但我认为只是尝试它而不是在这里询问会更快。 – 2010-05-15 02:36:04