maven 上传自定义骨架到私服

maven 上传自定义骨架到私服



笔记插图(第 1 页)

笔记插图(第 1 页)

笔记插图(第 1 页)

maven自定义骨架待私服.md 2.96KB

maven 上传自定义骨架到私服

1、首先创建一个新的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>3.0.0</version>
       </plugin>
    </plugins>

3、运行maven命令:

mvn archetype:create-from-project

然后会在target目录下面生成generated-sources目录,这个就是生成的 archetype

4、部署到本地,进入generated-sourced/archetype目录,运

行maven命令

mvn install

这样就把自定义的archetype安装到本地仓库了。

5、部署到maven服务器

笔记插图(第 2 页)

5.1 修改generated-sourced/archetype目录下pom.xml,加入如下内容:

    <distributionManagement>
        <repository>
            <id>gilight-release</id>
            <name>maven-public</name>
            <url>http://192.168.30.70:8081/repository/gilight-release/</url>
            <layout>dep</layout>
        </repository>
        <snapshotRepository>
            <id>gilight-snapshot</id>
            <name>maven-public</name>
            <url>http://192.168.30.70:8081/repository/gilight-snapshot/</url>
            <layout>dep</layout>
        </snapshotRepository>
    </distributionManagement>

    运行maven命令:mvn install
    这样就把自定义的archetype安装到maven服务器仓库了。

注意:这里的repository的id必须和maven中的setting.xml中server配置的id保持一致

    <server>
      <id>gilight-release</id>
      <username>deployment</username>
      <password>deployment</password>
    </server>
    <server>
        <id>gilight-snapshot</id>
        <username>deployment</username>
        <password>deployment</password>
    </server>

5.2 修改generated-sourced/archetype目录下pom.xml

    <packaging>jar</packaging>

5.3 修改generated-sourced/archetype/target/META-INF/maven目录下

archetype-metadata.xml

去除某些不用的文件,删除以下内容【这些都是可选的,根据需求自己掌握】

   <fileSet filtered="true" encoding="UTF-8">
     <directory>.idea/codeStyles</directory>
     <includes>
       <include>**/*.xml</include>
     </includes>
   </fileSet>

1. archetype-descriptor:项目模板描述符,name属性给本项目模板起了一个名字,不重要;

2. fileSet:描述了本项目模板包含哪些在archetype-resources中定义的文件,以及对文件如何处理;
filtered属性决定是否使用 Velocity engine (字面翻译为速度引擎), 如果不使用速度引擎,表示不做
任何处理,项目模板中直接包含在directory中定义的
目录及文件,如“src/main/webapp”不用做任何处理,所以filtered="false";如果使用速度引擎,表示在
模板中可以通过include指定的模式包含满足条件的文件;
更重要的可以使用创建项目时用户提供的参数来替换占位符。如src/main/java下的$ {package}需要被替
换,所以filtered=“true”

packaged属性决定$ {package}是否有效,
如果packaged=“true”,表示占位符有效,会根据用户创建项目时提供的package参数替换占位符(并且创建
包名对应的目录,把该文件放在该目录下,包名和目录要保持一致),如果用户未提供package参数,则使用
groupId参数作为包名,推荐使用。
如果package=“false”,表示包名使用“硬编码方式”,即不使用占位符,在java文件中写死包名,如“package
org.example;”,这种方式十分不灵活,因此不推荐使用;

3.  pom.xml不用在fileSet中指明,会自动包含进入项目模板;

注意:脚本的需要添加filtered=“true” ,不然不会替换脚本里的值

笔记插图(第 4 页)

5.4 然后在target/generated-sources/archetype运行

`mvn deploy`

6、获取自定义骨架

6.1 idea 创建maven项目

6.2 勾选Create from archetype

6.3 点击add Archetype

6.4 参照generated-sourced/archetype目录下pom.xml填充内容

6.5 一直下一步,直到finish