`
837062099
  • 浏览: 111509 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用maven 创建自定义的archetype(工程骨架)

阅读更多
创建自己的archetype一般有两种方式,比较简单的就是create from project

1、首先使用eclipse创建一个新的maven project,然后把配置好的一些公用的东西放到相应的目录下面
    比如说会将一些常用的java代码存放到src/main/java目录下面;
    会将一些通用的配置文件放到src/main/resources目录下面;
    如果是javeEE工程,还会有一些jsp等等的文件存放到src/main/webapp目录下面


2、然后在maven project的pom.xml文件中添加插件
    ================================================
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-archetype-plugin</artifactId>
            <version>2.2</version>
        </plugin>
    </plugins>
    ================================================
例如:



3、打开cmd窗口,cd到刚才创建的maven project的根目录,运行maven命令:
    mvn archetype:create-from-project
    然后会在target目录下面生成generated-sources目录,这个就是生成的 archetype

4、cd进入generated-sourced/archetype目录,运行maven命令:
    mvn install
    这样就把自定义的archetype安装到本地仓库了。
    archetype安装的地址是在maven安装目录下面的conf/settings.xml文件中指定的(<localRepository>字节)。
    默认会在  ~/.m2  目录下面生成一个archetype-catalog.xml文件(和默认的settings.xml在同一个目录),
    声明了该archetype的groupId、artifactId和其他属性。
    因为Eclipse创建maven项目过程中,选择的“Default Local”指向的地址就是 ~/.m2,
    所以文件archetype-catalog.xml会被eclipse自动读取,
    使用eclipse创建maven项目的时候可以在"Default Local"一项中找到刚才自定义archetype名字。
   
5、当eclipse的maven设置中,User Settings选择的settings.xml指向的本地仓库地址和maven安装目录下
    的那个settings.xml中指向路径一样的时候,eclipse才能读取得到刚才安装的自定义的archetype的源文件,
    这样eclipse才能复制源文件并创建项目。

6、如果想要卸载刚才安装的archetype,只需要将~/.m2目录下面的archetype-catalog.xml文件中对应的<archetype>字节段删掉,
    并且把本地仓库中相应groupId和artifactId下面的文件删掉就可以了。

7、安装到本地仓库中的archetype只可以被自己使用,如果想要共享,那么在第四步的时候使用deploy命令,不要使用install命令。
=====================================================================================
=====================================================================================

----------------------------------------------------------------------------------


1自定义原型

1.1创建原型项目
要定制自己的原型,首先就要创建原型项目来进行定制:
mvnarchetype:create -DgroupId=com.cdai.arche -DartifactId=test-archetype-DarchetypeArtifactId=maven-archetype-archetype
生成项目结构如下:


1.2安装原型到本地
在pom.xml中添加:
    <build>
       <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>
在pom.xml所在目录下执行:
         mvn archetype:create-from-project
就会在target目录下面生成generated-sources目录,这个就是生成的archetype
 
切换目录后执行:
         cd target\generated-sources\archetype
         mvn install
这样就把自定义的archetype安装到本地仓库了。archetype安装的地址是在maven安装目录下面的conf/settings.xml文件中指定的<localRepository>。默认会在  ~/.m2  目录下面生成一个archetype-catalog.xml文件。
 
archetype-catalog.xml内容如下:
===============================================================================
<?xmlversion="1.0" encoding="UTF-8"?>
<archetype-catalogxsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
   xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
     <groupId>com.cdai.arche</groupId>
     <artifactId>test-archetype-archetype</artifactId>
     <version>1.0-SNAPSHOT</version>
     <description>test-archetype-archetype</description>
    </archetype>
  </archetypes>
</archetype-catalog>

2从已有项目生成原型
只需执行上面列举的两条命令,即可将一个已有项目安装到本地原型库:
         mvn archetype:create-from-project
         cd target\generated-sources\archetype
         mvn install

3生成项目

3.1用原型生成项目
mvn archetype:generate -B-DarchetypeCatalog=local -DarchetypeRepository=local -DarchetypeGroupId=com.cdai.arche-DarchetypeArtifactId=test-archetype -DarchetypeVersion=0.0.1-SNAPSHOT-DgroupId=com.cdai -DartifactId=test
 
参考资料
使用maven3 创建自定义的archetype
http://blog.csdn.net/uncleja/article/details/7252780

分享到:
评论
1 楼 LeanTaoT 2018-01-03  
我deploy到私服,生成到哪里去了?我怎么找不到,public、release、snapshot的archetype-catalog.xml,都找不到,麻烦大牛指点一二。

相关推荐

Global site tag (gtag.js) - Google Analytics