使用maven2自定义项目结构创建项目
url: http://cgp17.javaeye.com/blog/564584
1.
首先使用命令:
mvn archetype:create -DgroupId=com.jwu -DartifactId=jwu-archetype -DarchetypeArtifactId=maven-archetype-archetype
创建 arche type
。
该命令在当前目录创建了一个名为 jwu-archetype
的 maven
项目,具有 src
目录和 pom.xml
文件。
2.
然后修改 archetype descriptor
文件 archetype.xml
,在 \
jwu-archetype\src\main\resources\META-INF\maven
目录下:
- <archetype>
- <id>jwu-archetypeid>
- <sources>
- <source>src/main/java/App.javasource>
- sources>
- <resources>
- <resource>src/main/webapp/WEB-INF/web.xmlresource>
- resources>
- <testSources>
- <source>src/test/java/AppTest.javasource>
- testSources>
- archetype>
这里面不能指定空的目录,只能指定单个的文件。 resources
目录会作为默认目录创建。
目录结构如下:
3.
然后再修改模板 pom.xml
文件,该文件会作为以后项目生成时的模板,所以修改如下:
- <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.0modelVersion>
- <groupId>${groupId}groupId>
- <artifactId>${artifactId}artifactId>
- <packaging>warpackaging>
- <version>${version}version>
- <name>A custom projectname>
- <url>http://www.mycom.comurl>
- <dependencies>
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>3.8.1version>
- <scope>testscope>
- dependency>
- dependencies>
- project>
注意里面的粗体值(
- <groupId>${groupId}groupId>
- <artifactId>${artifactId}artifactId>
- <version>${version}version>
),它们将被创建项目时指定的值代替。
4.
另外,还需要修改里面附带的一个测试文件: App.java
在 \src\main\resources\archetype-resources\src\main\java
目录,删除该java
文件的包声明。
同样需要删掉对应的 AppTest.java
文件的包声明,在 C:\yaowen\dev\playground\maven2projects
\jwu-archetype\src\main\resources\archetype-resources\src\test\java
目录下。
这里为了方便,可以把要创建的 archetype
指定一个简单的版本号,默认为 1.0-SNAPSHOT
。
修改在 \jwu-archetype
目录下的 pom.xml
文件如下:
- <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.0modelVersion>
- <groupId>com.jwugroupId>
- <artifactId>jwu-archetypeartifactId>
- <version>1.0version>
- <name>Archetype - jwu-archetypename>
- <url>http://maven.apache.orgurl>
- project>
5.
进入 \jwu-archetype
目录,执行 mvn install
命令,安装该 archetype
。安装完成之后,在该目录会产生一个 target
目录,同时在maven
的 repository
目录生成 mavenRepo\m2\com\jwu\jwu-archetype\1.0\ jwu-archetype-1.0.jar
及 jwu-archetype-1.0.pom
等文件。
\dev\playground\maven2projects\jwu-archetype>
mvn install
[INFO] [jar:jar]
[INFO] Building jar: C:\name\dev\playground\maven2projects\jwu-archetype\targe
t\jwu-archetype-1.0.jar
[INFO] [install:install]
[INFO] Installing C:\name\dev\playground\maven2projects\jwu-archetype\target\j
wu-archetype-1.0.jar to C:\yaoInstall\mavenRepo\m2\com\jwu\jwu-archetype\1.0\jwu
-archetype-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
表示安装成功。接下来就可以使用这个自定义的 archetype
了。
参考文档: http://maven.apache.org/plugins/maven-archetype-plugin/examples/archetype.html
创建测试项目: infowu
\dev\playground\maven2projects\jwu-archetype>
cd ..
退出 \jwu-archetype
目录,执行 mvn
命令:
\dev\playground\maven2projects\jwu-archetype>
mvn archetype:create
-DgroupId=com.jwu.info -DartifactId=infowu -Dpackage=com.jwu.info.infowu -Dversion=1.0-SNAPSHOT -
DarchetypeGroupId
=com.jwu -
DarchetypeArtifactId
=jwu-archetype -
DarchetypeVersion
=1.0
生成的目录结构如下:
测试一下生成的项目: \dev\playground\maven2projects\infowu>
mvn test
生成 eclipse
项目:
\dev\playground\maven2projects\infowu>
mvn eclipse:eclipse -Dwtpversion=2.0
这样就可以导入到 eclipse IDE
中进行进一步开发了。