第一种方法:

去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 项目使用 Nexus 仓库

 

 

 

配置 Maven 项目使用 Nexus 仓库

 

 

 

 

点击maven-public

配置 Maven 项目使用 Nexus 仓库

 

 

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

配置 Maven 项目使用 Nexus 仓库

 

 

 插件地址也是 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 名字要对应

 

配置 Maven 项目使用 Nexus 仓库

 

 

 

 

在<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>

 

配置 Maven 项目使用 Nexus 仓库

 

 

 

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

 

然后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 项目使用 Nexus 仓库

 

 

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

配置 Maven 项目使用 Nexus 仓库

 

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

 

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

 

现在仓库地址也有

配置 Maven 项目使用 Nexus 仓库

 

 

配置 Maven 项目使用 Nexus 仓库

 

 现在 maven-public 库有东西了

配置 Maven 项目使用 Nexus 仓库

 

 

我们再执行 mvn package

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

 

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

相关文章: