Maven的基础示意图
环境搭建
准备工作
docker安装
参考本人另一篇 Docker初识 -- 搭建编程环境下载
Nexus3
镜像
docker pull sonatype/nexus3
- 创建
nexus
的挂载文件夹
文件夹的目录可以根据个人情况指定,如果不想挂载文件夹,那么可以忽略这一步(记住:忽略之后,下面的指令把-v
的那部分去掉),资源就由容器自行去管理,为了数据的安全性,建议挂载操作
mkdir /usr/local/nexus-data && chown -R 200 /usr/local/nexus-data
- 启动容器
docker run -d -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data --restart=always sonatype/nexus3
启动容器并将宿主机/usr/local/nexus-data
(目录需要提前创建
)目录映射到容器/nexus-data
目录,这样就可以保存容器产生的文件了,具体请百度查询docker
相关信息。
安装完成。
系统配置
浏览器地址栏输入IP:8081
进入nexus3
管理界面。
点击右上角的登录,登录管理,admin
密码首次登录需要去指定位置查看随机生成的密码。
可以在登录窗口上看到密码的指定存放位置为/nexus-data/admin.password
,因为该目录已经映射为宿主机的/usr/local/nexus-data
目录。所以直接到/usr/local/nexus-data
目录下查看文件admin.password
。
可以看到admin的密码为09eac30e-b2f9-437d-9770-b35202ee43b7
,这时就可以登录admin用户了,登录后nexus会要求重新设置新的admin密码。
- 为Nexus配置阿里云代理仓库
Nexus默认远程仓库为https://repo1.maven.org/maven2/
,慢死,还常连不上。
添加阿里云代理仓库:
其他默认,翻到最下面,点create repository;
显示 Ready to Connect就OK了:
把aliyun添加到仓库组中,记得把aliyun排在central上边:
-
创建一个用户,用于上传jar包到仓库
最后点击保存用户。
到此Nexus的私有仓库基本设置完毕。
设置本地的maven到私有仓库
-
配置maven信息
进入conf文件夹,找到settings.xml文件打开:
- 找到servers节点,设置刚刚创建好的用户,比如我这里的用户为:
<server>
<id>public</id>
<username>zihui</username>
<password>zihui123456</password>
</server>
- 找到mirrors节点,设置仓库地址:
<!--内部maven-->
<mirror>
<id>central</id>
<name>Central Repository</name>
<url>http://10.168.1.118:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
- 最后找到profiles节点:
<profile>
<id>maven-public</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<repositories>
<repository>
<id>nexus-public</id>
<url>http://10.168.1.118:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
最后保存文件。
至此maven的基本设置就完成了。
设置项目的pom.xml文件,用于上传私有jar到私有仓库
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!--发布代码Jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!--发布源码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<!--这里的id与settings.xml中的servers节点配置的用户ID一直,这样才能使用配置的用户去上传到maven私有仓库 -->
<!--此仓库对应的为RELEASE版本的jar-->
<id>public</id>
<url>http://10.168.1.118:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<!--这里的id与settings.xml中的servers节点配置的用户ID一直,这样才能使用配置的用户去上传到maven私有仓库 -->
<!--此仓库对应的为SNAPSHOT版本的jar-->
<id>public</id>
<url>http://10.168.1.118:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
最后使用deploy发布属于自己的jar到自己的私有仓库。