Maven 私服配置 转

1、配置Nexus为maven的私服

第一种方式:在项目的POM中如下配置

<repositories>
    <repository>
        <id>nexus_public</id>        
        <url>http://localhost:8081/nexus/content/groups/public/</url>        
        <releases>            
            <enabled>true</enabled>        
        <releases>        
        <snapshots>
          <enabled>true</enabled>        
        <snapshots>   
      </repository>
  </repositories>
  <pluginRepositories>
      <pluginRepository>
               <id>nexus_public</id>
               <url>http://localhost:8081/nexus/content/groups/public/</url> 
                <releases>
                       <enabled>true</enabled>
                 <releases>
                 <snapshots>
                       <enabled>true</enabled> 
                 </snapshots>
        </pluginRepository>
   </pluginRepositories>

注意:这样的配置(第一个仓库是代码库,第二个是插件库)只对当前的Maven项目有效。实际的项目开发中,我们都想着一次配置就能让本机的所有Maven项目都使用Maven私服,那么我们就要用到下面的方法。

第二种方式:在settings.xml中如下配置:

<settings>
...

    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>nexus_public</id>
                    <url>http://localhost:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>trueenabled>
                    </releases>
                    <snapshots>
                    <enabled>true</enabled>
                </snapshots>    
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>nexus_public</id>
                <url>http://localhost:8081/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
             </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

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

...
settings>

Maven提供的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。

上面的配置中,使用了一个id为nexus的profile,这个profile包含了相关的仓库配置,同时配置中又使用了activeProfiles元素将nexus这个profile激活,这样当执行Maven构建的时候,激活的profile会将仓库配置应用到项目中去。

通过上面的配置,我们会发现Maven不仅会从Nexus下载构件外还会从中央仓库下载构件构件,为什么呢?因为超级POM文件定义了一个为central的远程仓库,如果这个ID没有被覆盖,那么请求下载构件时还可能会从central标识的远程仓库下载。既然是私服,那么我们就只希望Maven下载请求都仅仅通过Nexus。我们可以通过镜像实现这一需求。可以创建一个匹配任何仓库的镜像,镜像的地址是私服,这样Maven对任何仓库的构件下载请求都会转到私服中。

central的意思其实是重写了超级POM的资源库,那么这里通过重写导致覆盖,重要的是,镜像效果导致直接走镜像,而不会去理会这些资源库配置了,所以基本上url也失去了意义。不过对于快照和发布版本是否进行更新下载还是要靠这个配置来决定的,只有这个配置决定继续更新时才会走镜像下载资源,镜像其实是像在镜像内部寻找资源,如果没有则会在镜像配置的远程仓库下载资源到镜像中。

把上面的配置修改为如下配置:

<settings>
...
<mirrors>
    <mirror>
        <id>local_mirror</id>
        <mirrorOf>*</mirrorOf>
        <name>local_mirror</name>
        <url>http://localhost:8081/nexus/content/groups/public/</url>
    </mirror>
</mirrors>

<profiles>
    <profile>
         <id>nexus</id>
        <repositories>
        <repository>
            <id>central</id>
            <url>http://repo.maven.apache.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://repo.maven.apache.org/maven2</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
             </pluginRepository>
        </pluginRepositories>

    </profile>
</profiles>

<activeProfiles>
    <activeProfile>nexus</activeProfile>
</activeProfiles>
...
</settings>

注意:以上两种方法都是配置下载的地址,也就是说项目需要下载插件时、下载代码时请求的地址。如果想要上传自己的代码,那么还需要如下配置,也就是部署构件到私服。

2、部署构件到私服

我们在实际开发过程是多个人的,那么总有一些公共模块或者说第三方构件是无法从Maven中央库下载的。我们需要将这些构件部署到私服上,供其他开发人员下载。用户可以配置Maven自动部署构件至Nexus的宿主仓库,也可以通过界面手动上传构件。

第一种方式:使用Maven部署构件到Nexus私服上

日常开发的快照版本部署到Nexus中策略为Snapshot的宿主仓库中,正式项目部署到策略为Release的宿主仓库中,POM的配置方式如下(这个配置文件同样可以写在settings.xml文件中):

<distributionManagement>
    <repository>
        <id>local_nexus_releases</id>
        <name>core Release Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>local_nexus_snapshots</id>
        <name>core Snapshots Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

Nexus的仓库对于匿名用户只是只读的。为了能够部署构件,我们还需要再settings.xml中配置验证信息(其中,验证信息中service的id应该与POM中repository的id一致):

<servers>
    <server>
        <id>local_nexus_releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>local_nexus_snapshots</id>
        <username>admin</username>
        <password>admin123</password>
</server>
</servers>

第二种方式:在Nexus界面上手动部署第三方构件至私服

我们除了自己的构件要部署到Nexus私服上外,我们有可能还要将第三方构件(如:SQLService的JDBC)部署到Nexus上。这个时候,在Nexus界面上选择一个宿主仓库(如3rd party),再在页面下方选择Artifact Upload选项卡。填写对应的Maven坐标。然后点击“Select Artifact(s) for Upload”按钮从本机选择要上传的构件,然后点击“Add Artifact”按钮将其加入到上传列表中。最后,单击页面底部的“Upload Artifact(s)”按钮将构件上传到仓库中。

上传成功之后,就可以查看结果了:

测试附件信息

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>oracle.ojdbc</groupId>
  <artifactId>jdbc</artifactId>
  <version>14-10.2.0</version>
  <description>POM was created from install:install-file</description>
</project>

时间: 2024-10-18 23:08:57

Maven 私服配置 转的相关文章

maven 私服 配置 转

3 . Nexus预置的仓库 点击左侧 Repositories 链接,查看 Nexus 内置的仓库: Nexus 的仓库分为这么几类: hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件: proxy 代理仓库:代理公共的远程仓库: virtual 虚拟仓库:用于适配 Maven 1: group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库. 4

Maven 私服配置

1.下载nexus nexus https://help.sonatype.com/display/NXRM3/Download 2.配置环境变量 export PATH=$PATH:/Users/wangchengcheng/Downloads/UtilitySoftWare/Work/nexus-3.5.2-01-mac/nexus-3.5.2-01/bin 3.开启服务 nexus start 访问地址:http://localhost:8081/ 4.在 maven 目录下 conf/s

Maven私服配置Setting和Pom文件

上一遍博客已经在linux服务器上,搭建好nexus私服了 现在就需要配置setting.xml和pom.xml来使nexus作为maven的私服.setting.xml文件在conf下面,pom.xml是在你创建maven项目中的pom.xml中. 一.将jar发送到nexus私服务器 1.创建maven项目 创建一个最简单的maven项目,然后新建一个工具类,用来测试当把它打成jar包放到私服后,其它项目是否能够成功引用. 2.pom.xml <?xml version="1.0&qu

maven私服配置国内aliyun中央仓库

1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!-- 4 Licensed to the Apache Software Foundation (ASF) under one 5 or more contributor license agreements. See the NOTICE file 6 distributed with this work for additional informati

Maven学习二:使用Nexus搭建Maven私服及相关配置

处于安全等原因的考虑,一些企业内部网络是不允许访问外部网络的,但是项目内部搭建的项目又是Maven架构,这样就需要企业在内部网络中搭建自己的Maven仓库服务,再者一些大型企业或者内部模块化组件化划分的比较清楚的企业开发的一些独立组件就需要使用Maven自建仓库来存放独立组件了. 使用Nexus搭建Maven私服主要有一下步骤: 1.首先需要准备好Java环境和Maven环境环境 2.到Nexus官方网站下载最新版本的Nexus https://www.sonatype.com/download

maven仓库私服配置

maven仓库私服配置 私服访问地址:[[http://192.168.1.252:9080/nexus/content/groups/public/ 地址]] 1. 打开eclipse/myeclipse的maven插件:点菜单 Window ---> Preferences,找到maven插件,点开User Settings配置项,找到使用的settings.xml文件位置,用UltraEdit或其他XML编辑器打开该文件 2. 修改settings.xml配置:2.1 文件开头的local

maven学习笔记五(仓库搭建,私服配置)

实际项目中,我们往往都是多人开发,这个时候,假如一个项目有300多M.用的jar包有100多个.只要项目组来一个人就从中央仓库下载依赖的jar,这种下载一般都需要持续很久.而且中央仓库一般都是配置在外网的.这种代价和传输是很慢和不划算的.这个时候,我们就需要构建自己的私服,即 开发人员->私服(局域网)->中央仓库(外网) 这个时候,开发人员,会首先访问私服看有没有jar有的话,直接从私服下载,没有的话,会从中央仓库中寻找.大大提高了传输的效率. 私服搭建工具 当然,目前最流行的私服搭建工具就

配置maven私服nexus

1.Nexus简介 1.1 Nexus概述 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问. 利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact. Nexus是一套"开箱即用"的系统不需要数据库,它使用文件系统加Lucene来组织数据.Nexus使 用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用. Nexus支持WebDAV

安装配置maven私服-nexus

1.ubuntu下的Bundle安装方式 1.1. 去官网下载安装包:http://www.sonatype.org/nexus/ 我这里下载的是:nexus-2.8.1-01-bundle.zip,这个版本需要在jdk7下才能启动 1.2. 解压压缩包: sudo unzip nexus-2.8.1-01-bundle.zip 解压后,我这里是解压到了目录/opt/nexus/下边,在这里可以看到两个目录: nexus-2.8.1-01 和 sonatype-work 1.3. 配置文件: 打