我的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,]的开放式公共集合 在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 repostiory,一个名为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并构建正常。 请告诉我。
答案 0 :(得分:0)
很抱歉没有真正回答(由于缺乏声誉而无法发表评论),但是:
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,但要确保它使用正确的依赖版本。
答案 1 :(得分:0)
尝试此配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<version>1.0-beta-2</version>
...
<dependencies>
...
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>1.2.0</version>
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>