Maven-在项目之间共享库
我正在做一个多项目,现在我有一个类似的结构(实际上有几个jar项目和几个war项目) 我想要实现的是,让Maven-在项目之间共享库,maven,jakarta-ee,maven-2,maven-3,ear,Maven,Jakarta Ee,Maven 2,Maven 3,Ear,我正在做一个多项目,现在我有一个类似的结构(实际上有几个jar项目和几个war项目) 我想要实现的是,让projA和projB从公共共享文件夹中读取它们的依赖项,而不是保留它们自己的副本 实际上,我并不真正关心编译时从何处读取它们,但是当我打包EAR文件时,我希望每个jar/war只显示一次,从而减少EAR的大小 我已经尝试在父pom上声明依赖项,将依赖项声明为和其他一些东西,但到目前为止我还没有实现这一点 有没有一个简单的方法来实现这一点?有简单的maven插件吗 提前感谢。您应该能够通过将J
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>
当您迁移到Maven时,不应该将依赖项JAR存储在代码库中。我建议您创建一个包含所有依赖项的中央Maven存储库 请参阅首先将这些工件安装到本地存储库中。此外,您还可以参考以在构建时获取工件 您需要做的是:从源代码中删除所有依赖项jar,以及它们在
pom.xml
中的所有依赖项。这些文件将在需要时从maven中央存储库下载和打包。相应地设置工件的类型
<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>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myapp-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
META-INF/MANIFEST.MF
lib/myapp-utils-0.0.1-SNAPSHOT.jar
META-INF/application.xml
myapp-web.war