linux下 nexus搭建maven私有库 自动打包

linux下nexus搭建maven私有库自动打包

首先需要安装nexus:http://www.sonatype.org/nexus/go/
linux下 nexus搭建maven私有库 自动打包
如上图所示

执行命令解压tar包

tar zxvf nexus-2.11.3-01-bundle.tar.gz

进入解压好的目录

cd nexus-2.11.3-01

进入bin目录运行nexus

cd bin
./nexus start

关闭nexus的命令是

./nexus stop

启动成功后打开浏览器键入URL

http://localhost:8081/nexus/index.html
点击这里登陆
默认账户:admin
默认密码:admin123
linux下 nexus搭建maven私有库 自动打包

将所有type为proxy的configuration配置选项中DownloadRemoteIndex置为True,然后点击Save保存
linux下 nexus搭建maven私有库 自动打包

其中3rd party选项中可以上传第三方jar包一些maven下载不下来的,公共仓库上找不到的,就可以在3rd party中的Artifacts upload选项卡中上传jar包

新建组
linux下 nexus搭建maven私有库 自动打包

将右边的Available Repositories全部拖到左边点击Save保存
linux下 nexus搭建maven私有库 自动打包

将Releases仓库的Deployment Policy设置为*Allow ReDeploy
linux下 nexus搭建maven私有库 自动打包

pom.xml配置

<!-- 私有仓库 -->
  <repositories> 
    <repository> 
      <id>public</id> <!--这个ID需要与你新建的组group ID一致--> 
      <name>Public Repository</name>  
      <url>http://xxx.xx.xx.xx:8081/nexus/content/groups/public/</url>  
    </repository> 
  </repositories> 

  <!-- 自动打包 -->
  <distributionManagement>
    <repository>
      <id>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
      <url>http://xxx.xx.xx.xx:8081/nexus/content/repositories/releases</url>
    </repository>

    <snapshotRepository>
      <id>snapshots</id><!--这个ID需要与你的snapshots仓库的Repository ID一致-->
      <url>http://xxx.xx.xx.xx:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

设置deployment账户密码
linux下 nexus搭建maven私有库 自动打包

setting.xml配置

<server>
    <id>releases</id>
    <username>deployment</username>
    <password>admin123</password><!--这个密码就是你设置的密码-->
  </server>
  <server>
    <id>snapshots</id>
    <username>deployment</username>
    <password>admin123</password><!--这个密码就是你设置的密码-->
  </server>

最后右键项目->Run As->Run Configurations双击左边选项卡的Maven Build新建一个,如图所示linux下 nexus搭建maven私有库 自动打包
最后就可以在仓库中看到打好的包

需要注意的是,当pom.xml中同时配置了releases仓库和snapshots仓库时pom.xml文件开头的版本配置<version>1.0.0-SNAPSHOT</version>为build到snapshots库,而<version>1.0.0</version>**不带-SNAPSHOT的会build到releases库,如果只配置了releases库而版本号写的是带-SNAPSHOT的,build到最后一步会报400错误。