咱們在實際工做中 ,有些項目的架構是類似的,例如基於 restful的接口項目,若是每次都從新搭建一套架構或者經過拷貝創建一個項目不免有些得不償失,這裏咱們能夠用maven的archtype創建項目模版來解決 。java
建立maven archetype的步驟:apache
archetype的pom,這裏面的groupId,artifactId,version會在執行maven 的archetype generate 時顯示restful
其中pom中的 id應該和archetype.xml裏面的artifactId一致架構
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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.groupId</groupId> <artifactId>quickstart</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> </project>
archetype.xml maven
<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd"> <id>quickstart</id> <sources> <source>src/main/java/App.java</source> </sources> <testSources> <source>src/test/java/AppTest.java</source> </testSources> </archetype>
<allowPartial>true</allowPartial> 該標籤說明在一個已經存在的項目中依然能夠運行 mvm archetypeui
<sources>, <resources>, <testSources>, <testResources> , <siteResources>表明項目的不一樣部分spa
<sources>,<testSources>包含<source>,這個表示裏面的一個源碼文件rest
<testResources> a <siteResources>包含<resource>,這個表示裏面是一個資源文件code
<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>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <packaging>jar</packaging> <name>A custom project</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> ${artifactId}和${groupId} 將在執行maven archetype 裏面提示
配置完後,執行
mvn install完成安裝
安裝後,執行
mvn archetype:generate \
-DarchetypeGroupId=<archetype-groupId> \
-DarchetypeArtifactId=<archetype-artifactId> \
-DarchetypeVersion=<archetype-version> \
-DgroupId=<my.groupid> \
-DartifactId=<my-artifactId>
能夠完成該架構的安裝
eg:
mvn archetype:generate \
-DarchetypeGroupId=com.taobao.data.arch \
-DarchetypeArtifactId=jersey-quickstart \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.taobao.data.zl \
-DartifactId=testjersey