目录:
- 概述
- 基础环境
- Maven构建项目
- 转为Eclipse工程
【一】、概述
本文主要是演示如何运用Mave构建多模块项目的应用
【二】、基础环境
- Maven 版本:3.0.4
- 工作目录为:D:\workspace,在工作目录下新建文件夹: mydemo
- mydemo 分三个模块:myapp-core、myapp-client、myapp-webapp
【三】、Maven构建项目
按win+R 键输入cmd 回车进入控制台,切换到目录:D:\workspace\mydemo.
1.构建myapp-core项目
1 |
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.micmiu.demo -DartifactId=myapp-core -Dpackage=com.micmiu.demo.core -Dversion=1.0 |
运行截图如下:
构建完成后目录结构如下:
12345678910111213141516171819202122 D:\workspace\mydemo\myapp-core>tree /F卷 work 的文件夹 PATH 列表卷序列号为 2AF7-9BD9D:.│ pom.xml│└─src├─main│ └─java│ └─com│ └─micmiu│ └─demo│ └─core│ App.java│└─test└─java└─com└─micmiu└─demo└─coreAppTest.java
2.构建myapp-client 项目
1 |
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.micmiu.demo -DartifactId=myapp-client -Dpackage=com.micmiu.demo.client -Dversion=1.0 |
构建完成后目录结构如下:
12345678910111213141516171819202122 D:\workspace\mydemo\myapp-client>tree /F卷 work 的文件夹 PATH 列表卷序列号为 2AF7-9BD9D:.│ pom.xml│└─src├─main│ └─java│ └─com│ └─micmiu│ └─demo│ └─client│ App.java│└─test└─java└─com└─micmiu└─demo└─clientAppTest.java
3.构建myapp-webapp 项目
1 |
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.micmiu.demo -DartifactId=myapp-webapp -Dpackage=com.micmiu.demo.web -Dversion=1.0 |
构建完成后目录结构如下:
1234567891011121314 D:\workspace\mydemo\myapp-webapp>tree /F卷 work 的文件夹 PATH 列表卷序列号为 2AF7-9BD9D:.│ pom.xml│└─src└─main├─resources└─webapp│ index.jsp│└─WEB-INFweb.xml
4.添加parent项目的POM
在D:\workspace\mydemo 新建一个pom.xml 文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<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.micmiu.demo</groupId> <artifactId>myapp-parent</artifactId> <packaging>pom</packaging> <version>1.0</version> <name>mydemo-parent</name> <url>http://maven.apache.org</url> <modules> <module>myapp-client</module> <module>myapp-core</module> <module>myapp-webapp</module> </modules> </project> |
对mydemo\myapp-client\pom.xml文件修改成如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<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.micmiu.demo</groupId> <artifactId>myapp-parent</artifactId> <version>1.0</version> </parent> <groupId>com.micmiu.demo</groupId> <artifactId>myapp-client</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>myapp-client</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> |
ps:主要变化增加了父节点:<parent/>,该节点的内容需要和mydemo\pom.xml中的配置信息完全一致。
对mydemo\myapp-core\pom.xml文件修改成如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<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.micmiu.demo</groupId> <artifactId>myapp-parent</artifactId> <version>1.0</version> </parent> <groupId>com.micmiu.demo</groupId> <artifactId>myapp-core</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>myapp-core</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> |
ps:主要变化增加了父节点:<parent/>,该节点的内容需要和mydemo\pom.xml中的配置信息完全一致。
对mydemo\myapp-webapp\pom.xml文件修改成如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<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.micmiu.demo</groupId> <artifactId>myapp-parent</artifactId> <version>1.0</version> </parent> <groupId>com.micmiu.demo</groupId> <artifactId>myapp-webapp</artifactId> <packaging>war</packaging> <version>1.0</version> <name>myapp-webapp Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.micmiu.demo</groupId> <artifactId>myapp-core</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>myapp-webapp</finalName> </build> </project> |
ps:主要变化增加了父节点:<parent/>,该节点的内容需要和mydemo\pom.xml中的配置信息完全一致;增加了对myapp-core的依赖节点<dependency>,表示myapp-webapp项目中需要myapp-core的jar包
到此多模块的项目已经基本构建成功。
【四】、转化为Eclipse工程
控制台切换到目录:D:\workspace\mydemo 下,运行:
1 |
mvn eclipse:eclipse -Dwtpversion=1.0 |
会看到类似如下信息:
12345678910111213141516171819202122 [INFO] Reactor Build Order:[INFO][INFO] mydemo-parent[INFO] myapp-client[INFO] myapp-core[INFO] myapp-webapp Maven Webapp[INFO][INFO] ------------------------------------------------------------------------[INFO] ------------------------------------------------------------------------[INFO] Reactor Summary:[INFO][INFO] mydemo-parent ..................................... SUCCESS [0.528s][INFO] myapp-client ...................................... SUCCESS [0.111s][INFO] myapp-core ........................................ SUCCESS [0.034s][INFO] myapp-webapp Maven Webapp ......................... SUCCESS [0.048s][INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.151s[INFO] Finished at: Thu May 24 18:05:13 CST 2012[INFO] Final Memory: 5M/15M[INFO] ------------------------------------------------------------------------
在目录mydemo\myapp-webapp\下生成的 .classpath 文件内容如下:
1 2 3 4 5 6 7 8 |
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/> <classpathentry kind="output" path="target/classes"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/> <classpathentry kind="src" path="/myapp-core"/> </classpath> |
其中<classpathentry kind=”src” path=”/myapp-core”/>表示项目的引用
从上面的信息可以看出已经成功转化为eclipse可识别的普通项目,导入之后如下:
从上面的截图可见:项目之间的依赖关系也配置正确。
原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]
本文链接地址: http://www.micmiu.com/software/build/maven-multi-module-demo/
0 条评论。