【问题标题】:How to prevent maven from duplicating jars in an EAR file?如何防止 Maven 在 EAR 文件中复制 jar?
【发布时间】:2012-03-04 15:41:20
【问题描述】:

我有一个由 maven 构建的 EAR 文件,目前我有一个公共项目,我想把它放在一个 EAR\lib 中,所以我使用了带有“bundleDir”标签的 maven-ear-plugin,它工作正常,只是现在我的 commons.jar 出现在 lib 文件夹和 EAR 根目录中。如何告诉它只放在 lib 文件夹中?

我的 pom:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <configuration>
                <outputDirectory>../../outputs/java</outputDirectory>
                <version>5</version>
                <modules>
                    <jarModule>
                        <groupId>com.sample.common</groupId>
                        <artifactId>common</artifactId>
                        <includeInApplicationXml>
                            true
                        </includeInApplicationXml>
                        <bundleDir>/lib</bundleDir>
                    </jarModule>
                    ...
                </modules>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>ear</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

这里是依赖定义:

<dependency>
        <groupId>com.sample.common</groupId>
        <artifactId>common</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>

【问题讨论】:

  • 我知道标题有点奇怪,但我度过了漫长的一天 :)
  • 能否从 pom.xml 文件中发布关于 commons.jar 的依赖定义,谢谢。
  • 我已经用依赖更新了主要部分

标签: java maven-2 maven-plugin maven-ear-plugin


【解决方案1】:

如果你的 jar 文件不是 ejb,你可以简单地把它放到 ear 依赖而不定义到 maven-ear-plugin。否则,请尝试在依赖项列表中设置提供给您的 jar 的范围。这可能会有所帮助。

【讨论】:

  • 该 jar 是一个 EJB jar,我已经尝试使用提供的范围,但不幸的是没有帮助。
  • 可能你的耳朵依赖列表中还有另一个模块,它使用 com.sample.common:common 范围编译或运行时。在这种情况下,您在 ear 依赖列表中使用并依赖于 com.sample.common:common 的所有模块也应该为 com.sample.common:common 提供范围。
  • 好点,但我已经想到了这一点并更新了对该罐子的所有引用,但仍然没有运气。
  • 我实际上重新访问了所有的 pom 文件,发现我忘记了一个依赖项,所以现在这个 jar 只按计划出现在 elib 文件夹中。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2017-12-02
  • 1970-01-01
  • 2015-05-07
  • 2016-12-03
相关资源
最近更新 更多