搭建Nexus私服

Nexus下载地址:

https://download.sonatype.com/nexus/3/latest-unix.tar.gz


版本:nexus-3-37.0-01

安装:

解压:

tar -zxvf latest-unix.tar.gz 

启动Nexus:


/opt/nexus-3-37.0-01/bin/    nexus-start
查看状态:nexus status 


查看端口是否被占用
netstat -anp | grep java
如果还是不行关闭防火墙:
systemctl status firewalld  查看状态
systemctl disable firewalld  禁止
systemctl stop firewalld 关闭防火墙 

登录网页:ip+8081

 

 

这个密码只能登录一次,用户名是admin

重新设置新密码:

 

设置是否匿名访问:匿名不需要配置,非匿名安全性高,需要配置

 

交接各种nexus仓库:

 

仓库类型说明
proxy某个远程仓库代理
group存放:通过nexus获取第三方jar包
hosted存放:本团队其他人员部署到nexus的jar包
仓库名称说明
maven-centralNexus对Maven中央仓库代理
maven-public默认创建,供开发人员下载使用的组仓库
maven-release

Nexus默认创建,供开发人员部署自己的jar包宿主仓库

要求release版本

maven-snapshot

Nexus默认创建,供开发人员部署自己的jar包宿主仓库,

要求snapshots

初始状态下这几个仓库都没有内容

配置setting.xml文件
1、重新配置本地仓库

<localRepository>D:\maven-repo</localRepository>

2、指定Nexus服务器地址
我们把配置阿里云仓库地址的mirror标签改成下面:原来的注掉

<mirror>
    <id>nexus-mine</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus mine</name>
    <url>http://192.168.200.132:8081/repository/maven-public/</url>
</mirror>

3、如果匿名访问,不设置,如果禁止使用匿名访问,需要配置一下

<server>
    <id>nexus-mine</id>
    <username>用户名</username>
    <password>密码</password>
</server>

注意:server标签内的id标签值必须和mirror标签中的id值一样

4、找一个用到框架的Maven工程,执行命令:

mvn clean compile

就会执行下载:

 

nexus的客户端查看maven-public,就会有编译的jar包。

 

 
将我们jar包部署到Nexus
配置Maven工程:我们想要发布的工程pom.xml添加下面配置

<distributionManagement>
    <snapshotRepository>
        <id>nexus-mine</id>
        <name>Nexus Snapshot</name>
        <url>http://192.168.200.132.8081/repostory/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

注意:这里snapshotRepository的id标签必须和setting.xml中指定的mirror标签id属性一致

maven工程执行部署命令:

mvn deploy

出现问题,执行安装:

mvn clean install 

 

设置一下:

 

 项目引用别人部署的jar包
1、默认访问的Nexus仓库:maven-public
2、存放别人部署jar包的仓库:maven-snapshots

<repositories>
    <repository>
        <id>nexus-mine</id>
        <name>nexus-mine</name>
        <url>http://192.168.200.132.8081/repostory/maven-snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

 修改某一个仓库的配置
举例:修改maven-central仓库

jar包冲突:

1、较低的版本里面没有依赖,但是较高版本存在依赖,升级版本

2、全限定名相同,但是代码完全不同(exclusions排除依赖) 

3、解决:Maven的enforcer插件既可以监测同一个jar包的不同版本,又可以检测不同jar包中同名的类

4、解决:IDEA的maven Helper插件它能够罗列出来同一个jar包的不同版本,以及他们的来源,但是对不同jar包中同名的类没有办法。

 

enforcer的pom.xml配置:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <id>enforce-dependencies</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>display-info</goal>
                        <goal>enforce</goal>
                    </goals>
                </execution>
            </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>extra-enforcer-rules</artifactId>
                        <version>1.0-beta-4</version>
                    </dependency>
                </dependencies>
            <configuration>
                <rules>
                    <banDuplicateClasses>
                        <findAllDuplicates>true</findAllDuplicates>
                    </banDuplicateClasses>
                </rules>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

 

测试:

mvn clean package enforcer:enforcer 

工程导出jar包: 

 

选择empty。

 

 

 

将jar包安装到maven仓库

我们使用install插件的install-file
mvn install:install-file -Dfile=[体系外 jar 包路径]
-DgroupId=[体系外jar包强行设定坐标]
-DartifactId=[体系外jar包强行设定坐标]
-Dversion=1
-Dpackage=jar 

实例:(windows系统下使用^符号换行;Linux系统用\)

mvn install:install-file -Dfile=D:\idea2019workspace\atguigu-maven-outer\out\artifacts\atguigu_maven-outer\atguigu-maven-outer.jar^
-DgroupId=com.atguigu.maven^
-DartifactId=atguigu-maven-outer^
-Dversion=1^
-Dpackage=jar
 

<dependencies>
    <dependency>
        <groupId>com.atguigu.maven</groupId>
        <artifactId>my-outer</artifactId>
        <version>1</version>
    </dependency>
</dependencies>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值