通过maven自定义archetype快速开发的步骤【http://marshal.easymorse.com/archives/1212】
每次创建开发环境对个人和团队都是一个负担。影响开发效率,增加出差错的可能性。maven的自定义archetype和相关设置可以瞬间创建预配 置的项目。现在一般将这种预配置的项目叫做:脚手架(scaffold)。开发人员将主要精力放在业务的开发,而不是搭建基础的项目结构。
可以手工创建archetype,但是需要注意的东西比较多,比如编写配置文件,必须一一描述文件的复制路径,而且可能用到 velocity和相关宏的使用。所以一般可先创建所需的maven项目,然后利用archetype plugin的create-from-project将maven项目将该maven项目生成为archetype类型项目。生成maven项目后并确 定定型后,执行:
mvn archetype:create-from-project
生成的archetype在此路径下:
target\generated-sources
该目录下也会有pom.xml文件,可修改该文件,增加deploy的设置,比如公司有maven repository manager服务器,以后就可以将该archetype部署到公司服务器上,便于其他人使用。比如:
<distributionManagement>
<repository>
<id>releases</id>
<name>MyCo Internal Repository</name>
<url>http://dev.easymorse.com/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>MyCo Internal Repository</name>
<url>http://dev.easymorse.com/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
部署到公司服务器的命令:
mvn deploy
假设该archetype项目名为webproto-archetype,那么,其他开发者需要配置自己.m2/settings.xml文件,增加公司的repository信息,比如:
<profiles>
<profile>
<id>easymorse-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>easymorse-repo</id>
<url>http://dev.easymorse.com/nexus/content/repositories/releases</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
然后使用该webproto-archetype,运行下面的示例,将在本地目录下获得一个struts2+hibernate集成的maven项目:
mvn archetype:generate
-DarchetypeGroupId=com.easymorse.dev
-DarchetypeArtifactId=webproto-archetype
-DarchetypeVersion=1.1.0
create-from-project生成的项目一般不能直接使用,还需要手工修改。
比如,create-from-project会自动将xml文件的version的值(1.0)替代为变量占位符,可手工取消该变量,否则在使用该archetype时将被项目的版本值替代。
还有不要用archetype:create,已经标识为Deprecated了,通过它使用archetype,复制文件可能出现乱码。