Maven最佳实践:划分模块

eclipse版本:

Version: Luna Service Release 1 (4.4.1)

Build id: 20140925-1800


使用多模块的Maven配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。

详见:http://drizzlewalk.blog.51cto.com/2203401/568055


在这里我会演示如何在eclipse中把一个项目划分多个模块

在eclipse建立工作目录,为E:\workspace4。

新建maven项目,你可以选择创建简单的project。在弹出框中勾选create a simple project即可。下一步。父项目创建成功,不过你还需要修改一个地方,那就是父项目中pom.xml的打包方式,修改为pom即可。

如图所示

Maven最佳实践:划分模块_第1张图片

Maven最佳实践:划分模块_第2张图片


下一步新建maven子模块,不用选择新建maven module,直接新建maven project。通过配置pom实现父子模块的关联。

如图所示:

Maven最佳实践:划分模块_第3张图片

Maven最佳实践:划分模块_第4张图片


以此类推,新建cnivi_common,cnivi_arrangement两个maven project。。。。

然后配置pom,如下:

cnivi_parent.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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cnivi</groupId>
	<artifactId>cnivi_parent</artifactId>
	<version>1.0.0</version>
	<packaging>pom</packaging>
	<modules>
		<module>cnivi_content</module>
		<module>cnivi_common</module>
		<module>cnivi_arrangement</module>
	</modules>
</project>


cnivi_content.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>
	<groupId>cnivi</groupId>
	<artifactId>cnivi_content</artifactId>
	<version>1.0.0</version>
	<packaging>war</packaging>
	<parent>
		<groupId>cnivi</groupId>
		<artifactId>cnivi_parent</artifactId>
		<version>1.0.0</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>cnivi</groupId>
			<artifactId>cnivi_common</artifactId>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


cnivi_common.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>
	<groupId>cnivi</groupId>
	<artifactId>cnivi_common</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>
	<parent>
		<groupId>cnivi</groupId>
		<artifactId>cnivi_parent</artifactId>
		<version>1.0.0</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


cnivi_arrangement.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>
	<groupId>cnivi</groupId>
	<artifactId>cnivi_arrangement</artifactId>
	<packaging>war</packaging>
	<version>1.0.0</version>
	<parent>
		<groupId>cnivi</groupId>
		<artifactId>cnivi_parent</artifactId>
		<version>1.0.0</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


在父模块中,可以看到

<modules>
	<module>cnivi_content</module>
	<module>cnivi_common</module>
	<module>cnivi_arrangement</module>
</modules>

子模块中,可以看到

<parent>
	<groupId>cnivi</groupId>
	<artifactId>cnivi_parent</artifactId>
	<version>1.0.0</version>
</parent>


这样就完成了多模块的配置。。。

====END====


你可能感兴趣的:(Maven最佳实践:划分模块)