我的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>
在我的案例中,其他人一直在推动一个联系关系,这是一种称为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>
指向上述插件,但仍指向指向开放式commons-collections的相同1.2.0 jasperreports,并且构建失败。
但是,如果我在jasperreports-maven-plugin.pom中注释掉了依赖项“ jasperreports”,它将使用net.sf.jasperreports中的jasperreports并构建良好。
请告诉我。
最佳答案
抱歉,您还没有真正回答(由于缺乏声誉而无法发表评论),但是:
1。
万一你赶时间,
这是一种解决方法,来自
http://community.jaspersoft.com/questions/967926/issue-maven-plugin-codehaus-dec-9-2015:
您需要添加
https://maven.repository.redhat.com/nexus/content/groups/product-ga
作为您的远程存储库之一。
非常感谢joel.witham
2。
我认为this的答案
Maven dependency management for plugin dependencies
最有前途的..即不要排除jasper-1.2,但要确保它使用的是正确的依赖版本。