我有一个现有的Web项目,当前正在使用Ant。我的任务是:
仅基于使用此项目作为依赖项的其他应用程序的某些程序包创建jar
为应用创建战争文件
还有很多其他
另外,我有一个Web服务项目,该项目使用由上一个应用程序构建的jar。该项目使用Maven。
现在,我要实现的是将第一个项目移动到Maven,将其分为core
和web
,然后将webservice项目移动到第一个项目。
因此,结果将是一个多模块项目:
核心
ui
网络服务
是否可以将处理Web传递机制的源移到ui模块中(这在Maven中是一场战争),还是我需要将源保持在核心位置?
最好的方法是什么?
我应该调查一下Maven个人资料吗?
我是Maven的新手,所以我不确定该如何处理。
最佳答案
是的,您可以使用Maven实现您想要的。我会像这样破坏模块:
核心:
<groupId>com.myapp</groupId>
<artifactId>core</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
用户界面:
<groupId>com.myapp</groupId>
<artifactId>ui</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<!-- Dependends on core -->
<dependency>
<groupId>com.myapp</groupId>
<artifactId>core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
网络服务:
<groupId>com.myapp</groupId>
<artifactId>ws</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<!-- Also Dependends on core -->
<dependency>
<groupId>com.myapp</groupId>
<artifactId>core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
主要项目:
<groupId>com.myapp</groupId>
<artifactId>myapp</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>core</module>
<module>ui</module>
<module>ws</module>
</modules>
然后,在Core / UI和Web服务中,将myapp声明为父级:
<parent>
<groupId>com.myapp</groupId>
<artifactId>myapp</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
有关更多信息,请参阅:
Introduction to the POM:特别是:继承和项目聚合
Maven by Example: Chapter 6. A Multi-module Project:用于示例项目
Multi-modules projects:用于文件夹结构