文章目录
- 为什么要用私服
- 怎么搭建?
- 下载
- 安装
- 配置
- 运行
- 添加第三方仓库
- 添加本地仓库
- 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