配置 Maven 项目使用 Nexus 仓库

 

 

第一种方法:

去maven 项目 helo-world 项目 配置pom.xml,在pom.xml配置 只有本项目才用到这个Nexus仓库

[root@ci-node2 ~]# cd /root/hello-world
[root@ci-node2 hello-world]# ll
total 4
-rw-r--r-- 1 root root 1683 Aug 26  2010 pom.xml
drwxr-xr-x 4 root root   30 Oct 10  2009 src
drwxr-xr-x 7 root root  188 Apr 22 01:12 target

 

 

第二种方法

在maven配置文件配置,配置完所有项目都去Nexus仓库去拉,把Nexus作为中央仓库来处理,全局更好

 

在 maven 的 setting.xml 文件中配置私服配置,这种方式配置后所有本地使用该配置的
maven 项目的 pom 文件都无需配置私服下载相关配置

 

maven配置文件 setting.xml 在/usr/local/maven/conf

[root@ci-node2 hello-world]# cd /usr/local/maven/conf/
[root@ci-node2 conf]# ll
total 16
drwxr-xr-x 2 root root    37 Nov 11  2015 logging
-rw-r--r-- 1 root root 10216 Nov 11  2015 settings.xml
-rw-r--r-- 1 root root  3649 Nov 11  2015 toolchains.xml

 

[root@ci-node2 conf]# vim settings.xml 

 

 

 

在<profiles></profiles>之间加入下面的配置  

分别配置 profile id(配置的标识),配置仓库 nexus

url 配置是

 

点击

 

 

 

 

 

 

 

 

点击maven-public

 

 

 url配置 http://192.168.31.13:8081/repository/maven-public/ 地址

 

 

 插件地址也是 http://192.168.31.13:8081/repository/maven-public/

 

<profile>

    <id>my-nexus</id>

<repositories>

<!-- 私有库地址-->

    <repository>

        <id>nexus</id>

        <name>nexus</name>

        <url>http://192.168.31.13:8081/repository/maven-public/</url>

        <snapshots>

            <enabled>true</enabled>

        </snapshots>

        <releases>

            <enabled>true</enabled>

        </releases>

    </repository>

</repositories>

<pluginRepositories>

<!--插件库地址-->

        <pluginRepository>

            <id>nexus</id>

            <url>http://192.168.31.13:8081/repository/maven-public/</url>

            <releases>

                <enabled>true</enabled>

            </releases>

            <snapshots>

                <enabled>true</enabled>

            </snapshots>

         </pluginRepository>

</pluginRepositories> 
</profile>

 

 添加了一组profile配置,配置了私有仓库和插件地址

 

 

现在要启动上面的配置:

在<settings></settings>之间加入下面的配置,激活使用上面的配置

启动上面的my-nexus配置  加上文件id

 

<activeProfiles>

    <activeProfile>my-neuxs</activeProfile>

</activeProfiles>

注:profile 名字要对应

 

 

 

 

 

在<mirros></mirros>之间加入如下配置

加了id

url地址也是  http://192.168.31.13:8081/repository/maven-public/

 

<mirror>

    <id>nexus-myself</id>

    <!--*指的是访问任何仓库都使用我们的私服-->

    <mirrorOf>*</mirrorOf>

    <name>Nexus myself</name>

    <url>http://192.168.31.13:8081/repository/maven-public/</url>

</mirror>

 

 

 

 

这段配置意思是只要访问中心仓库的东西,都去私服去访问,私服没有,再去中心仓库下载

 

然后wq保存 配置

 

 

配置完成后, 回到去maven 项目 helo-world 项目  

[root@ci-node2 ~]# cd /root/hello-world
[root@ci-node2 hello-world]# ll
total 4
-rw-r--r-- 1 root root 1683 Aug 26  2010 pom.xml
drwxr-xr-x 4 root root   30 Oct 10  2009 src
drwxr-xr-x 7 root root  188 Apr 22 01:12 target

执行前先把.m2仓库删除,因为默认已经下载到.m2仓库,执行命令默认会找m2仓库,如果m2仓库有,就不去私服下载

[root@ci-node2 hello-world]# rm -rf /root/.m2/

执行 mvn clear 把上次构建清掉

 

 

地址改变了,前面下载都是在maven中央仓库下载,现在变成我们私服地址

 

 私服没有,会去中央仓库下载,先下载到我们的私服,现在m2仓库也有了

 

当我们再次执行 mvn 命令时,下载构件的地址变为我们的私服地

 

现在仓库地址也有

 

 

 

 现在 maven-public 库有东西了

 

 

我们再执行 mvn package

他会把更多的下载到我们本地,先下载到私服Nexus仓库里面,再下载到m2仓库

 

我们的私服也缓存了相应的构件在本地

posted @ 2020-05-23 18:28  minger_lcm  阅读(1523)  评论(0编辑  收藏  举报