Maven私服搭建及自定义Archetype(骨架)
文章目录
- 搭建MAVEN私服
- 为什么要用私服
- 怎么搭建?
- Nexus
- 下载
- 安装
- 配置
- 运行
- 添加第三方仓库
- 添加本地仓库
- MAVEN配置
- settings文件配置
- 项目pom文件配置
- 上传
- 自定义项目骨架
- 什么是archeType
- 创建archetype
- 手动创建 插件创建(推荐)
- 1.创建MAVEN项目
- 2.创建archetype描述
- 3.创建文件模板
- 4.生成archetype
- 使用自定义archetype
一.搭建MAVEN私服
为什么要用私服
通过私服MAVEN能够更有效的管理自己的依赖包,像阿里云的短信jar包等第三方的依赖包,很多公服是没有的,在比如MAVEN是不支持多个仓库下载的,但是可以配置多个仓库。在私服上就可以解决以上问题。
怎么搭建?
我们使用Nexus
来搭建我们的私有仓库。
Nexus下载
官网下载地址: https://www.sonatype.com/nexus-repository-oss
官网速度比较慢,windows用户可以通过我上传的资源进行下载。
安装
全部解压,注意要保证2个文件夹始终在同一层目录上。
配置
默认的端口号8081
,可以在nexus-3.18.0-01\etc\nexus-default.properties
文件中修改
端口号 application-port=8081 host application-host=0.0.0.0
运行
下面为windows运行步骤,其他平台可以参考
- 进入
nexus-3.18.0-01\bin
目录下,你的后面版本可能和我的不一样 - 通过命令窗口执行以下命令
nexus.exe/run
- 当看到
state change RUNNING -> WAITING (OK)
这种提示就代表启动成功了。
运行成功后可以在浏览器上输入 http://127.0.0.1:8081即可看到效果。
第一次启动,请根据向导一步步来,里面会告知密码在哪个文件中。
添加第三方仓库
进入后 登录账号:admin
密码:你自己设置的密码
我们以阿里云为例,点击设置,选择Repositories,进入后创建仓库。
创建类型选择maven2(proxy)
阿里云仓库地址: http://maven.aliyun.com/nexus/content/groups/public/
然后回到主界面点击maven-public
仓库,这个仓库就是我们在项目需要使用到的中央仓库了。
把你添加的仓库移到右边,就可以了。别忘记点击保存
添加本地仓库
仓库类型:
- maven2(group) 仓库组,集成多个仓库,参考我们私服的中央仓库
- maven2(proxy) 代理仓库,就是我们刚刚添加阿里云的仓库类型。
- maven2(hosted) 本地仓库,也就是我们把自己的依赖包上传的仓库。
在上面的步骤下,我们选择maven2(hosted)
,除了名字必填,还有一项值得注意。
如果选择Release
,那么上传的依赖包版本必须为Release
。
注意
别忘了,把我们创建的仓库,添加到中央仓库中去哦。
MAVEN配置
<server> <id>SNAPSHOT</id> <username>admin</username> <password>你的密码</password> </server> <server> <id>Releases</id> <username>admin</username> <password>你的密码</password> </server>
项目pom文件配置
在项目中pom.xml
文件下,添加以下节点:
repository>id,要和上面的id一致,否则会上传失败
<!--使用指定仓库--> <repositories> <repository> <id>nexus</id> <url>http://localhost:8081/repository/maven-public/</url> </repository> </repositories> <!--上传的仓库地址--> <distributionManagement> <repository> <id>Releases</id> <name>Releases</name> <url>http://localhost:8081/repository/3rd_part/</url> </repository> <snapshotRepository> <id>SNAPSHOT</id> <name>SNAPSHOT</name> <url>http://localhost:8081/repository/loc_SNAPSHOT/</url> </snapshotRepository> </distributionManagement>
上传
- 单模块
在当前项目路径下,执行mvn deploy
- 多模块
在父模块目录下,执行mvn deploy
二.自定义项目骨架
什么是archeType
在我们使用IDEA创建项目的时候,可以快速创建基本的模板,而这些模板就是使用archeType生成的。
创建archetype
假如我们有个Maven项目,他的项目结构和我们以往的都差不多,那么为了下次直接能够生产该项目结构,则可以把该项目创建一个archetype
,方便我们下次自动生成。
我们可以通过2中方法来创建模板。
1.手动创建
1.创建MAVEN项目
修改项目中的pom.xml
文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.groupId</groupId> <artifactId>my-archetype-id</artifactId> <version>1.0-SNAPSHOT</version> <packaging>maven-archetype</packaging> <build> <extensions> <extension> <groupId>org.apache.maven.archetype</groupId> <artifactId>archetype-packaging</artifactId> <version>3.1.1</version> </extension> </extensions> </build> </project>
2.创建archetype描述
这一步主要就是用来生成的代码。
首先确保创建好了resources
文件夹
在src/main/resources/META-INF/maven/
路径下,创建以下文件
文件名不能修改archetype-metadata.xml
<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="my-archetype-id"> <fileSets> <fileSet filtered="true" packaged="true"> <directory>src/main/java</directory> </fileSet> <fileSet> <directory>src/test/java</directory> </fileSet> </fileSets> </archetype-descriptor>
这里的name="quickstart
中的quickstart要对应项目中的artifactId
3.创建文件模板
在resources/archetype-resources
中,需要先添加pom.xml
文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <packaging>jar</packaging> <name>${artifactId}</name> <url>http://www.myorganization.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> </project>
随后可以在需要地方创建java代码。
总的项目结构如下图:
4.生成archetype
在项目路径下输入命令: mvn install
完成生成即可。
2.插件创建(推荐)
使用插件的方式创建是简单也是最快速的一种方式。
- 创建项目,或者使用以前的项目
- 进入到该项目中,输入命令
mvn archetype:create-from-project
- 命令执行完后,进入到
target/generated-sources/archetype
文件夹中 - 在该文件中,执行命令
mvn install
这种插件的方式非常让人省心,等待生成好后,即可以使用了。
此方式亲测可用
使用自定义archetype
可使用这种方式选择要创建的模板。
命令:mvn archetype:generate -DarchetypeCatalog=local
意思是生成项目,从本地获取到模板
回车以后,会看到本地的模板列表,输入要用的模板即可。
参考:https://blog.51cto.com/u_13690151/3079758
https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html
https://maven.apache.org/guides/mini/guide-creating-archetypes.html