我有一个使用Maven的大型Java Web应用程序项目,我需要启动一个新的项目,它将共享大部分相同的代码(所以我不必重复工作),但不是全部。我将把共享代码复制到一个新项目中(我们称之为“root”)。如何使我的原始项目依赖于源代码的根?我不能仅仅因为我想在编译之前更改源代码而使用它。你如何使用Maven共享两个项目的源代码?
10
A
回答
8
你应该重构你的项目。
- 标识通用代码
- 提取到自己的Maven模块
2.1。通常网络应用程序是多模块的,所以如果你打算在两个网络应用程序之间共享公用库,那么将公用库分成它自己的组编号 - 构建并将jar文件安装到您的存储库中
- 更改网络应用程序的poms取决于您的新库
2
创建一个包含所有共享代码的maven项目。保持这个项目的包装(在主要的pom.xml中)为jar。这将有助于使您的使用这个项目类库。
在所有访问共享代码的项目中,根据您的需要为该项目添加依赖项。 (编译,提供)。
现在打包并安装共享项目,然后再构建任何相关项目。这会将共享项目添加到您的本地存储库,然后您的相关项目可以使用该项目。
为共享项目和相关项目添加示例pom.xml。
共享项目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>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shared-module</name>
<description>shared module which contains code shared by other modules.</description>
</project>
依赖项目的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>
如果需要此类组织,可以选择添加父项目。 希望这有助于。
0
安装共享代码,用罐子当前的包装设置:
mvn install
然后,您可以创建在孩子的pom.xml从你是什么仓库的依赖(即不共享的代码)安装到。
这是一个很好的做法,不仅可以避免重复工作,而且还可以在需要更改共享资源的实施时使用。您可以在一个地方更改逻辑,将其安装到存储库,而其他依赖该代码的项目在下次编译时将使用新代码。
相关问题
- 1. 在两个Netbeans项目之间共享源代码
- 2. 如何在两个GWT项目之间共享代码?
- 3. 在多个项目中使用svn存储库的源代码(共享项目)
- 4. 两个不同的GWT项目之间的共享代码
- 5. 两个UIButtons共享代码
- 6. 在eclipse中共享相同基本源代码的两个web项目
- 7. 在两个不同的git项目之间共享代码
- 8. 在几个项目之间共享c#类源代码
- 9. 如何在几个Maven项目中共享公共属性?
- 10. 项目中可能有两个Java共享代码模块?
- 11. qtmake - 两个项目/目标之间的共享资源
- 12. 两个不同的项目,在maven中有一个共享依赖项目
- 13. 如何在多个GWT eclipse项目之间共享代码?
- 14. 如何在2个项目之间共享WinForms和代码
- 15. 两个项目的共享库
- 16. 在VS 2010项目中共享代码
- 17. 在项目之间共享代码库
- 18. 的Maven - 项目之间共享库
- 19. 如何使用不同的源代码目录编译Maven项目
- 20. 在解决方案中跨项目共享源代码
- 21. 同步共享库项目/模块及其源代码
- 22. 在项目之间共享源代码[VS2008,C++]
- 23. 以eclipse作为源代码控制的TFS - 如何下载共享项目?
- 24. 共享两个项目文件
- 25. 如何共享包含JNI代码的Android库项目?
- 26. 如何在我的项目之间共享代码?
- 27. 如何跟踪共享公用代码的Git中的几个项目?
- 28. 具有共享库的多个项目/解决方案的源代码控制
- 29. 与SVN Eclipse共享项目时,如何包含源文件/代码?
- 30. 如何链接Maven项目之外的源代码?
适用于我。谢谢。 – teteArg 2014-10-29 22:10:36