【发布时间】:2016-03-15 14:22:58
【问题描述】:
我的 pom 中有以下插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<version>1.0-beta-2</version>
<dependencies>
<dependency>
<!-- The dependency specified by the plugin doesn't work so we must provide our own -->
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>${jasperreports.version}</version>
<exclusions>
<exclusion>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
</exclusion>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Groovy compiler seems to be required but not part of JasperReports' specified dependencies-->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>${itext.version}</version>
</dependency>
</dependencies>
</plugin>
上述插件的 1.0-beta-2 版本指向 1.2.0 版本的 jasperreports 工件,该工件又指向 [2.1, ) 的开放式 commons-collections 在 1.0-beta-2 pom 中:
<dependency>
<groupId>jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>1.2.0</version>
</dependency>
在 jasperreports 1.2.0 pom 中:
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>[2.1,)</version>
<scope>compile</scope>
</dependency>
在我的例子中,其他人推动了一个 nexus 存储库,一个名为 3.2.1-redhat-7 commons-collections 的工件。 jasperreports-maven-plugin 指向上面的集合版本,它恰好是一个损坏的版本。有一个有效的 3.2.1 版本的 commons 集合。我需要排除 jasperreports 工件并强制 jasperreports-maven-plugin 使用 net.sf.jasperreports。 我已经尝试添加
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<version>1.0-beta-2</version>
<exclusions>
<exclusion>
<groupId>jasperreports</groupId>
<artifactId>jasperreports</artifactId>
</exclusion>
</exclusions>
</dependency>
到上面的插件,但它仍然指向相同的 1.2.0 jasperreports,它指向一个开放式的 commons-collections,并且构建失败。 但是,如果我在 jasperreports-maven-plugin.pom 中注释掉依赖项“jasperreports”,它会使用来自 net.sf.jasperreports 的 jasperreports 并构建良好。 请告诉我。
【问题讨论】:
标签: maven jasper-reports maven-plugin