您的位置:首页 > 其它

Maven之——Nexus仓库与构件

2014-11-11 18:43 225 查看

Maven之——Nexus仓库与构件   

       

1、    Nexus的索引与构件搜索

        用户可以根据构件名称、GVA来在Nexus中搜索所需构件、但是前提是被搜索的仓库开启索引。比如中央仓库、默认中央仓库是关闭自动下载远程索引的、如下图、开启下载中央仓库远程索引:

       

   

 

        可以在ScheduledTasks中观察系统的调度任务、也可以在这里配置系统的调度任务。



           

2、    配置Maven从Nexus下载构件

        Maven私服搭建好之后、需要修改配置文件、使用Nexus私服。具体目标是、所有构件和插件的请求都转向Nexus私服。

        大致步骤:1、配置Nexus做为我们仓库。2、将Nexus做为所有仓库的镜像。

3、     配置Nexus做为我们仓库

        如果在某一具体项目的POM中配置、那只对当前项目有效、若想一次配置所有项目都使用、那么就是在settings.xml文件中配置、但是settings.xml中没有关于Repositeries配置、但是可以在<profiles><profile>标签中配置、然后激活<profile>配置文件、通过id关联、具体见下方详细配置信息:

<profiles>
...
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<layout>default</layout>
<!--<snapshots>-->
<!--<enabled>false</enabled>-->
<!--</snapshots>-->
<snapshots>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
<updatePolicy>daily</updatePolicy>
</snapshots>

<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus plugins</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>

<profile>
<id>central</id>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://central</url>
<layout>default</layout>
<!--<snapshots>-->
<!--<enabled>false</enabled>-->
<!--</snapshots>-->
<snapshots>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
<updatePolicy>daily</updatePolicy>
</snapshots>

<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Nexus plugins</name>
<url>http://central</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>

</profiles>

<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>central</activeProfile>
</activeProfiles>

4、    将Nexus做为所有仓库的镜像。

        这样所有仓库请求都会转到Nexus私有仓库。镜像的配置:

<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>All repositories mirror</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>

        也就是为所有仓库开启镜像。

5、    部署构件至Nexus

        部署构件到Nexus有两种方式、一是将我们的项目上传到Nexus私服、二是手动将第三方构件部署到宿主仓库。

6、    使用Maven部署构件至Nexus

        日常开发中、可以将快照版本的构件直接部署到Nexus中的Snapshot宿主仓库、或者我们自己定义的策略为Snapshot的仓库。发布版的可以直接部署到Nexus中策略为Release的仓库。POM中的配置:

  <distributionManagement>
<repository>
<id>nexus-release</id>
<name>Project release repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
<!--<url>http://localhost:8081/nexus/content/repositories/Foo_Release/</url>-->
</repository>

<snapshotRepository>
<id>nexus-snapshot</id>
<name>Project snapshot repositories</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
<!--<url>http://localhost:8081/nexus/content/repositories/Foo_Snapshots/</url>-->
</snapshotRepository>
</distributionManagement>
        Nexus内置的仓库对于匿名用户是只读的、为了能部署构件、还要在settings.xml中配置认证信息、具体是通过仓库的id关联的。认证信息:

  <servers>
<server>
<id>nexus-release</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshot</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
        下面会提到Nexus内置的用户以及他们拥有的权限。

7、    手动部署第三方构件至Nexus

        首先选择一个宿主仓库、比如Nexus内置的3rdparty、如下图:



         上传好之后就可以在Browse index选项中看到了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息