我的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,但要确保它使用的是正确的依赖版本。

07-24 09:47
查看更多