1.使用Docker安装Nexus
docker search nexus;
docker pull docker.io/sonatype/nexus3
mkdir -p /hm/nexus-data ;
chown -R 200 /hm/nexus-data;
现在已经安装完成了 nexus。
使用docker 启动nexus
docker run -tid -p 8011:8011 --name nexus -e NEXUS_CONTEXT=nexus -v /hm/nexus-data:/nexus-data docker.io/sonatype/nexus3
这里我修改端口
修改目录下/hm/nexus-data/etc/nexus.properties的文件。如果不修改的话,会有问题。修改为 application-port=8011
2.登录Nexus进行配置
1、登录nexus
访问:http://ip:8011/nexus/ 使用默认管理员身份登录,帐号:admin,密码:admin
2、进入管理界面
- Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了。
- 默认仓库说明
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar。
maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy。
maven-snapshots:私库快照(调试版本)jar。
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用。 - 仓库类型
Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots, Central,当然你也可以自己设置。
Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件。
3rd party:未发布到公网的第三方jar (3.x去除了)。
Snapshots:本地项目的快照仓库。
Releases: 本地项目发布的正式版本。
Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库。
Central:中央仓库。
Apache Snapshots:Apache专用快照仓库(3.x去除了)。
3、增加新的代理源
第一步 按照步骤添加新的代理源
第二步选择添加maven2的代理
第三步 添加代理(Cache统一设置为200天 288000)
第四步 逐个增加常用代理
1. aliyun
http://maven.aliyun.com/nexus/content/groups/public
2. apache_snapshot
https://repository.apache.org/content/repositories/snapshots/
3. apache_release
https://repository.apache.org/content/repositories/releases/
4. atlassian
https://maven.atlassian.com/content/repositories/atlassian-public/
5. central.maven.org
http://central.maven.org/maven2/
6. datanucleus
http://www.datanucleus.org/downloads/maven2
7. maven-central (安装后自带,仅需设置Cache有效期即可)
https://repo1.maven.org/maven2/
8. nexus.axiomalaska.com
http://nexus.axiomalaska.com/nexus/content/repositories/public
9. oss.sonatype.org
https://oss.sonatype.org/content/repositories/snapshots
10.pentaho
https://public.nexus.pentaho.org/content/groups/omni/
第五步 设置maven-public 将这些代理加入Group,最好将默认的maven库放到最底下
第六步 设置私用仓库可重复发布
Nexus安装后自带maven-releases,maven-snapshots两个仓库,用于将生成的jar包发布在这两个仓库中,在实际开发中需要将maven-releases设置为可以重复发布
这样nexus就搭建好了
3.将本地项目打包上传至Nexus
1.在pom.xml添加以下配置
<distributionManagement>
<repository>
<id>HMreleases</id><!--和setting.xml文件一致-->
<name>HM-Releases Repository</name>
<url>http://192.168.153.134:8011/nexus/repository/hm-releases/</url>
</repository>
<snapshotRepository>
<id>HMsnapshot</id><!--和setting.xml文件一致-->
<name>HM-Snapshot Repository</name>
<url>http://192.168.153.134:8011/nexus/repository/hm-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</build>
2.修改本地Maven的setting.xml(查找idea的maven配置文件,自行百度一下)
<servers>
<server>
<id>HMreleases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>HMsnapshot</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
3.点击 执行
4.执行完成之后查看
现在可以成功了