Maven EAR编译

时间:2012-11-20 10:37:13

标签: java maven ear

我有这种依赖(和许多其他人一样):

<dependency>
    <groupId>jShrink</groupId>
    <artifactId>jShrink</artifactId>
    <version>3.0.2</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/../kladr-ear/lib/jShrink-3.0.2.jar</systemPath>
</dependency>

那么如何使用MAVEN在包中添加此JAR到EAR / LIB文件夹?

3 个答案:

答案 0 :(得分:1)

查看可用的Maven scopes,我希望您将其标记为

<scope>compile</scope>

并将jar文件上传到您的存储库(本地或远程)。 Maven应该为您提供适当的命令行来执行上传。

编辑:如下所述,此范围是默认,因此您可以省略它。

答案 1 :(得分:0)

进入EAR的依赖关系通常应该基于EJB模块所需的依赖关系。如果在编译范围内有一个带有库X的EJB模块,那么这将触发Maven想要将库打包到EJB所属的内容中。无需在耳塞中管理任何示波器。

如果您没有任何EJB且只有WAR,我不会在EAR中打包库,而只是将它们作为WAR的一部分进行部署(因此它们最终会出现在WEB-INF / lib中)。保持Web依赖关系不错并包含在每个模块中,即使这意味着您获得重复项。

此外,compile是默认范围,因此您不需要手动声明它,除非您这样做是为了覆盖依赖项的另一个范围集。

答案 2 :(得分:-2)

所以我找到了将jar库放到ear / lib路径的方法。我已将其<jarModule>添加到maven-ear-plugin。同样在每个<jarModule>我添加了<bundle> - 这个jar将被复制的路径。