我想将 3 个以上的 maven 项目(基于 HTML、javascript 和 CSS)组合成一个。我的主项目使用来自其他项目的依赖项。那么,如何在不更改这些依赖项的情况下构建单个项目呢?
问问题
5238 次
2 回答
4
假设您有一个多模块项目:
mysite
: 父 pom 模块。mysite-core
:一个java模块mysite-web
: 一个网络资源模块 (javascript, html, ...)mysite-webapp
:一个战争模块
mysite
具有packaging pom
并包括其他 3 个modules
:
<groupId>mysite</groupId>
<artifactId>mysite</artifactId>
<packaging>pom</packaging>
<modules>
<module>../mysite-core</module>
<module>../mysite-web</module>
<module>../mysite-webapp</module>
</modules>
mysite-core
使用标准jar packaging
:
<parent>
<artifactId>mysite</artifactId>
<groupId>mysite</groupId>
<relativePath>../mysite/</relativePath>
</parent>
<groupId>mysite</groupId>
<artifactId>mysite-core</artifactId>
mysite-web
很相似:
...
<artifactId>mysite-web</artifactId>
mysite-webapp
包括 java 和 web 资源模块作为依赖项:
...
<artifactId>mysite-webapp</artifactId>
<packaging>war</packaging>
<dependency>
<groupId>mysite</groupId>
<artifactId>mysite-core</artifactId>
</dependency>
<dependency>
<groupId>mysite</groupId>
<artifactId>mysite-web</artifactId>
</dependency>
使用maven-war-plugin的overlays属性,您可以将资源添加到战争中:
<overlays>
<overlay>
<groupId>mysite</groupId>
<artifactId>mysite-web</artifactId>
<type>jar</type>
</overlay>
</overlays>
注意:最好有一个平面项目布局,例如:
- 根
- 父 pom 模块
- java pom模块
- java-1 jar 模块
- java-2 jar 模块
- 网页资源jar模块
- 战争模块
而不是分层布局:
- 根
- 父 pom 模块
- java pom模块
- java-1 jar 模块
- java-2 jar 模块
- 网页资源jar模块
- 战争模块
- 父 pom 模块
我注意到像 Eclipse 这样的工具不喜欢分层结构(缓慢甚至无穷无尽的构建)。
于 2012-12-31T20:48:48.493 回答
-1
使用 Maven 模块。这里有大量文档:
http://maven.apache.org/guides/mini/guide-multiple-modules.html
于 2012-12-31T11:05:18.513 回答