乐趣区

关于程序员:Maven-ArcheType

Maven ArcheType Plugin

maven-archetype-plugin 是 maven 内置的插件,能够应用原型(archetype)搭建我的项目。

通常咱们创立一个应用 maven 构造的 java 我的项目,须要编写 pom 文件,并且创立一些目录 src/main/java src/main/resource src/test/java,还须要编写一些 java 文件或者配置。不同的我的项目增加的 pom 不同,须要减少的配置也不一样。

这个插件有三个次要的 goal

archetype:create-from-project 把以后我的项目创立成原型

archetype:jar 把原型我的项目打包成 jar

archetype:generate 依据原型我的项目搭建我的项目,也就是最罕用的性能

性能如下图

上面咱们实战一下,三个工作:

  • 创立一个我的项目,转换成原型
  • 把原型我的项目转换成 jar,并上传上 center repositry
  • 应用原型搭建我的项目

创立根本我的项目

第一步,创立一个 maven 我的项目在

quickstart-jdk8

http://github.com/shalk/arche…

第二步,筹备原型的配置文件

在同一级目录

quickstart-jdk8.properties

archetype.groupId=com.xshalk.archetypes
archetype.artifactId=quickstart-jdk8
archetype.version=1.0.0

# archetype.filteredExtensions=java
archetype.languages=java

#an_additional_property=my specific value

执行如下命令,生成原型,到目录 target/generated-sources/archetype

cd quickstart-jdk8
mvn archetype:create-from-project -Darchetype.properties=../quickstart-jdk8.properties

进入原型目录,打包成 jar,并保留到本地仓库

cd target/generated-sources/archetype
mvn install

也能够应用 archetype:jar 间接生成 jar

mvn archetype:jar

上传到 center repositry

sonatype 公司治理着一个凋谢的地方仓库,只有把本人的包传上去,在其余能联网的中央就能间接应用了。

次要分三个步骤

  1. 去 sonatype 的 jira,注册并申请 groupId,期待通过。
  2. 批改 pom.xml,减少签名,javadoc,source 等
  3. 进行公布,snapshot、release
  4. 登录 sonatype 的 nexus 后盾,点击 release

这个步骤的细节都比拟多,能够参考 这里 或者 局部官网文档

最初公布胜利

<!-- https://mvnrepository.com/artifact/com.github.shalk/archetype-quickstart-jdk8 -->
<dependency>
    <groupId>com.github.shalk</groupId>
    <artifactId>archetype-quickstart-jdk8</artifactId>
    <version>1.0.0</version>
</dependency>

创立新我的项目

mvn archetype:generate -DarchetypeGroupId=com.github.shalk  -DarchetypeArtifactId=archetype-quickstart-jdk8 -DarchetypeVersion=1.0.0 -DgroupId=<my.groupid>  -DartifactId=<my-artifactId>


mvn archetype:generate -B -DarchetypeGroupId=com.github.shalk  -DarchetypeArtifactId=archetype-quickstart-jdk8 -DarchetypeVersion=1.0.0 -DgroupId=com.test  -DartifactId=app1 -Dversion=1.0.0-SNAPSHOT

参考

https://maven.apache.org/arch…

https://maven.apache.org/guid…

https://blog.csdn.net/ssrc060…

退出移动版