nexus 代理仓库

 一.安装下载nexus 

   1.1下载nexus

   访问http://nexus.sonatype.org/downloads/,我下载的是nexus-3.0.2-02-unix.tar.gz版本

   1.2安装nexus

   tar -zxvf nexus-3.0.2-02-unix.tar.gz

   ln -s nexus-3.0.2-02  nexus(做一个软链接)

   1.3运行nexus

   启动nexus就是启动一个jetty服务器,默认端口是8081,./bin/nexus run

....nexus3.0需要jdk1.8以上才支持,默默的又下载一个nexus-2.14.0-01-bundle.tar包

     nexus2.14版本启动的命令是./bin/nexus start,第一次启动可能要几分钟时间

    在浏览器中输入http://ip:8081/nexus,就会看到以下的界面

    

 

   1.4登陆nexus

    点击右上角log in ,输入用户名amdin 密码admin123登陆

  1.5 更改nexus的默认配置

      1.5.1修改密码

             点击右上角admin->profile,在出现的页面中点击change password

       1.5.2开启远程索引下载

            Nexus带有三个重要的代理仓库,有中央Maven仓库,Apache快照仓库,和Codehaus快照仓库。它们中的每一个仓库都包含了数千(或数万)的构件,下载每个仓库的所有内容是不切实际的。处于这个原因,大部分仓库维护了一个编录了整个内容的Lucene索引,以提供快速和有效的搜索。Nexus使用这些远程索引搜索构件,但是默认设置我们关闭了索引下载。要下载远程索引

             1.打开Repositories标签,选中远程仓库并打开Configuration,将Download Romote Location 设置为true

       

    
2. 在远程仓库上右键选择Update Index,Nexus会自动建立一条任务计划;一般远程仓库都比较大,构建会比较多,索引文件会很大,像http://repo1.maven.org/maven2/就有几百M,因此需要的时间就比较长。

     

      可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了.(自动更新太慢了,建议手动更新)


 下载完成index之后可以从browse index中看到

    2.手动更新

         在http://repo.maven.apache.org/maven2/.index/ 中下载
            nexus-maven-repository-index.gz
            nexus-maven-repository-index.properties
          然后再下载一个indexer-cli-5.1.0.jar
          indexer的下载地址:http://maven.outofmemory.cn/org.apache.maven.indexer/indexer-cli/5.1.0/
          将上面三个文件(.gz & .properties & .jar)放置到同一目录下,运行如下命令

          java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d indexer
        将{nexus_home}\sonatype-work\nexus\indexer\central-ctx下的文件全部删掉
        执行完之后,把indexer下的所有内容都复制到%nexus-home%\sonatype-work\nexus\indexer\central-ctx下面

        重新启动nexus,进入管理界面,选择central->Browse Index,就看到更新的索引了。 

二.管理仓库

           代理仓库

             一个代理仓库是对远程仓库的一个代理。默认情况下,Nexus自带了如下配置的代理仓库:

             Apache Snapshots

            这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repositoryCodehaus Snapshots这个仓库包含了来自于Codehaus的快照版本。http://snapshots.repository.codehaus.org/

            Central Maven Repository

             这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/

          宿主仓库

               一个宿主仓库是由Nexus托管的仓库。Maven自带了如下配置的宿主仓库。

          3rd Party

               这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有:你组织使用的,商业的,私有的类库如Oracle JDBC驱动。

          Releases

               这个宿主仓库是你组织公布内部发布版本的地方。

         Snapshots

                这个宿主仓库是你组织发布内部快照版本的地方。

       虚拟仓库

               一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库。

      Type:

      hosted,本地代理仓库,通常我们会部署自己的构件到这一类型的仓库。

      proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

      group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。

三.部署构建到nexus   

     3.1部署发布版本

         需要配置distributionManagement,项目有了这个配置就可以执行mvc deploy命令了        

<project>
...
<distributionManagement>
...
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
...
</distributionManagement>
...
</project>

    Nexus可以支持多个宿主仓库;你不需要坚持在默认的 releases 和 snapshots 仓库上。你可以为不同的部门创建不同的宿主仓库,然后将多个仓库组合成一个单独的Nexus组。

      3.2部署快照版本

       如果你项目的版本是快照版本(如1.0-SNAPSHOT)Maven就会将其部署至 snapshotRepository :

<project>
...
<distributionManagement>
...
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
...
</distributionManagement>
...
</project

       3.3部署第三方构件

       DgroudId 和artifactId分别代表第三方构件的id

 mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
> -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar \
> -Durl=http://localhost:8081/nexus/content/repositories/thirdparty \
> -DrepositoryId=thirdparty

 

   

猜你喜欢

转载自zcf9916.iteye.com/blog/2328353
今日推荐