如何从jasperreports maven插件

时间:2015-12-10 04:18:32

标签: maven jasper-reports maven-plugin

我的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并构建正常。 请告诉我。

2 个答案:

答案 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>