Tom*_*Tom 6 ear maven-2 java-ee maven-3 maven
我正在开发一个多项目,现在我有一个类似于这个的结构(实际上有几个jar项目和几个战争项目)
/myProj
|_______projA (jar)
| |____pom.xml
| |____target/jar files
|_______projB (war)
| |___pom.xml
| |___web-inf/lib/jarfiles
|_______projEar
| |___pom.xml
|___pom.xml
Run Code Online (Sandbox Code Playgroud)
我想要实现的是从一个共同的共享文件夹中创建projA和projB读取它们的依赖,而不是保留它们自己的副本.
实际上,我并不关心他们在编译时从哪里读取它们,但是当我打包我的EAR文件时,我希望每个jar/ war只出现一次,因此减少了EAR大小.
我已经尝试声明父pom上的依赖项,声明依赖项和其他一些东西,但到目前为止我还没有实现这一点.
有没有一种简单的方法来实现这一目标?任何简单的maven插件?
提前致谢.
您应该可以通过将JAR作为依赖项添加到EAR的pom.xml来实现此目的:
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myapp-web</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myapp-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
...并指定WARs的pom.xml中提供的依赖项:
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myapp-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果Maven /其他工具已将JAR复制到您的WEB-INF/lib目录,则可能需要在重建之前手动删除该文件.
这应该导致形式的EAR:
META-INF/MANIFEST.MF
lib/myapp-utils-0.0.1-SNAPSHOT.jar
META-INF/application.xml
myapp-web.war
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5802 次 |
| 最近记录: |