Maven 2 如何使用Maven共享两个项目的源代码?
我有一个使用Maven的大型Java Web应用程序项目,我需要启动一个新项目,该项目将共享大部分相同的代码(因此我不必重复工作),但不是全部。我将把共享代码复制到一个新项目中(我们称之为“根”)。我如何使我的原始项目依赖于root来获取源代码?我不能只是jar它,因为我想在编译之前更改源代码。创建一个包含所有共享代码的maven项目。将此项目的打包(在主pom.xml中)保持为jar。这将有助于使该项目成为供您使用的库 在所有访问共享代码的项目中,根据需要为该项目添加依赖项。(编译,提供) 现在,在构建任何依赖项目之前,打包并安装共享项目。这将把共享项目添加到您的本地存储库中,然后您的从属项目可以使用该存储库 为共享和依赖项目添加示例pom.xml 共享项目pomMaven 2 如何使用Maven共享两个项目的源代码?,maven-2,Maven 2,我有一个使用Maven的大型Java Web应用程序项目,我需要启动一个新项目,该项目将共享大部分相同的代码(因此我不必重复工作),但不是全部。我将把共享代码复制到一个新项目中(我们称之为“根”)。我如何使我的原始项目依赖于root来获取源代码?我不能只是jar它,因为我想在编译之前更改源代码。创建一个包含所有共享代码的maven项目。将此项目的打包(在主pom.xml中)保持为jar。这将有助于使该项目成为供您使用的库 在所有访问共享代码的项目中,根据需要为该项目添加依赖项。(编译,提供) 现
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>com.myspace.test</artifactId>
<groupId>com.myspace</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.myspace</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shared-module</name>
<description>shared module which contains code shared by other modules.</description>
</project>
4.0.0
com.myspace.test
com.myspace
0.0.1-快照
com.myspace
共享
0.0.1-快照
共享模块
共享模块,其中包含由其他模块共享的代码。
从属项目的pom
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>com.myspace.test</artifactId>
<groupId>com.myspace</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.myspace</groupId>
<artifactId>dependent-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dependent-module</name>
<description>Dependent module.</description>
<dependencies>
<dependency>
<groupId>com.myspace</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
4.0.0
com.myspace.test
com.myspace
0.0.1-快照
com.myspace
从属模块
0.0.1-快照
从属模块
依赖模块。
com.myspace
共享
0.0.1-快照
假如
如果需要这样的组织,可以选择添加父项目。
希望这有帮助。使用当前的jar打包设置安装共享代码:
mvn install
然后,您可以从要安装到的任何存储库在子pom.xml(不共享的代码)中创建依赖项
这通常是一种良好的做法,不仅可以避免重复工作,而且还可以在您想要更改共享资源的实现时使用。您可以在一个地方更改逻辑,将其安装到存储库中,其他依赖该代码的项目将在下次编译时使用新代码。您应该重构项目
2.1. 通常web应用程序是多模块的,因此,如果要在两个web应用程序之间共享公共库,请将公共库分离到其自己的组id中
对我有用。谢谢