搭建简单的maven多模块管理附带源码

最近刚换公司,新公司使用maven进行源码管理。我这里进行一下简答的学习搭建,希望对大家有所帮助。这里我搭建一个例子,使用cms的web端,dao,service端进行分模块。

基本格局如下:

cms

     | - -pom.xml(pom)

     | - -dao

     |     | - -pom.xml(jar)

     | - -service

     |     | - -pom.xml(jar)

     | - -website

     |     | - -pom.xml(war)

上面示意图中,有一个父项目cms,聚合子模块dao,service,website。每个模块,包含父模块,都有一个pom.xml.图中也标识了每个模块的打包方式。

这些模块的依赖关系是:

   service  -- >dao

   website -- > service

下面列一下各个模块的pom.xml

cms目录下的pom.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<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>com.gxkj</groupId>
	<artifactId>cms</artifactId>
	<packaging>pom</packaging>
	<version>1.0-SNAPSHOT</version>
	
	<name>${project.groupId} ${project.artifactId} ${project.version}</name>
	<modules>
		<module>dao</module>
		<module>service</module>
		<module>website</module>
	</modules>

	<dependencies>     
		<dependency>      
			<groupId>junit</groupId>       
			<artifactId>junit</artifactId>       
			<version>3.8.1</version>       
			<scope>test</scope>    
		</dependency> 
		<dependency>
                     <groupId>org.springframework</groupId>
                      <artifactId>spring-web</artifactId>
                      <version>3.0.5.RELEASE</version>
	     </dependency>
	     <dependency>
	         <groupId>org.springframework</groupId>
	         <artifactId>spring-webmvc</artifactId>
	         <version>3.0.5.RELEASE</version>
	     </dependency>
	     <dependency>
	         <groupId>org.apache.geronimo.specs</groupId>
	         <artifactId>geronimo-servlet_2.5_spec</artifactId>
	         <version>1.2</version>
    	 </dependency>
	</dependencies>
	<build>
		<finalName>cms</finalName>
	</build>
</project>

 提供一些依赖包,子模块继承时候,自动继承,不需要重复写。

 

dao里pom.xml代码如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<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>
		<groupId>com.gxkj</groupId>
		<artifactId>cms</artifactId>
		<version>1.0-SNAPSHOT</version>
	</parent>
	<groupId>com.gxkj.cms</groupId>
	<artifactId>dao</artifactId>
	<name>${project.groupId} ${project.artifactId} ${project.version}</name>
	<build>     
		<finalName>cms-dao</finalName>  
	</build>
</project>

 service里pom.xml代码如下

 

 

<?xml version="1.0" encoding="UTF-8"?>
<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>
		<groupId>com.gxkj</groupId>
		<artifactId>cms</artifactId>
		<version>1.0-SNAPSHOT</version>
	</parent>
	<artifactId>service</artifactId>
	<groupId>com.gxkj.cms</groupId>
	<name>${project.groupId} ${project.artifactId} ${project.version}</name>
	<dependencies>
			<dependency>
				<groupId>com.gxkj.cms</groupId>
				<artifactId>dao</artifactId>
				<version>${project.version}</version>
			</dependency>
	</dependencies>
	<build>     
		<finalName>cms-service</finalName>  
	</build>
	
</project>

 website里pom.xml代码如下

 

 

<?xml version="1.0" encoding="UTF-8"?>
<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>
		<groupId>com.gxkj</groupId>
		<artifactId>cms</artifactId>
		<version>1.0-SNAPSHOT</version>
	</parent>
	<groupId>com.gxkj.cms</groupId>
	<artifactId>website</artifactId>
	<packaging>war</packaging>
	<dependencies>
			<dependency>
				<groupId>com.gxkj.cms</groupId>
				<artifactId>service</artifactId>
				<version>${project.version}</version>
			</dependency>
	</dependencies>
	<build>     
		<finalName>cms-web</finalName>  
	</build>
</project>

 子模块通过<parent>标签从父模块继承各种属性。使用eclipse导入项目,具体步骤是File-import-existing maven projects->选择目录cms所在目录,在高级里,选择命名模板[groupId].[artifactId]->finish。

 

发布时,在项目cms上右键,Run as  ->Run Configurations->base directory里选择cms项目,Goals里填写命令:clean dependency:copy-dependencies package 。如图:


搭建简单的maven多模块管理附带源码_第1张图片
 

  点击run。以后通过左上角的debug,run按钮即可。
 附上源码供参考使用。

 

多模块开发测试,使用tomcat发布的方式如下图:


搭建简单的maven多模块管理附带源码_第2张图片
 

 

你可能感兴趣的:(maven)