
maven 上传自定义骨架到私服



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服务器

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” ,不然不会替换脚本里的值

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