配置Maven使用Nexus

有两种方式

第一种:最简单明了的方式

直接在你项目的pom.xml中添加如下

    <repositories>  

        <repository>  

            <snapshots>  

                <enabled>true</enabled>  

            </snapshots>  

            <id>public</id>  

            <name>Public Repositories</name>  

            <url>http://localhost:8081/nexus/content/groups/public/</url>  

        </repository>  

    </repositories>  

    <pluginRepositories>  

        <pluginRepository>  

            <id>public</id>  

            <name>Public Repositories</name>  

            <url>http://localhost:8081/nexus/content/groups/public/</url>  

        </pluginRepository>  

    </pluginRepositories>

那么,maven会首先从你配置的公共仓库中取信息,取不到再去默认的仓库取

 

 

第二种: 配置稍复杂    

 

为了使用Nexus,你将要配置Maven去检查Nexus而不是公共仓库。为此,你需要需该Maven的mirror setting,该配置文件在~/.m2/settings.xml也有可能是Maven目下路conf/settings.xml.首先,我们演示如何配置Maven查阅你的Nexus而不是Maven Central repository。然后我们重写central repository并验证Nexus是工作的。

    配置Maven使用单个Nexus Group

    如果你想更改Nexus用于内部开发,你应该配置一个包含了release版和snapshot的single nexus group。为此,你需要添加snapshot仓库到你的public group,并且在你的Maven的settings.xml中添加如下内容:

<settings>

  <mirrors>

    <mirror>

      <!--This sends everything else to /public -->

      <id>nexus</id>

      <mirrorOf>*</mirrorOf>

      <url>http://localhost:8081/nexus/content/groups/public</url>

    </mirror>

</mirrors>

 

<profiles>

  <profile>

    <id>nexus</id>

    <!--Enable snapshots for the built in central repo to direct -->

    <!--all requests to nexus via the mirror -->

    <repositories>

      <repository>

        <id>central</id>

        <url>http://central</url>

      <releases>

        <enabled>true</enabled>

      </releases>

      <snapshots>

        <enabled>true</enabled>

      </snapshots>

    </repository>

  </repositories>

 

  <pluginRepositories>

    <pluginRepository>

      <id>central</id>

      <url>http://central</url>

      <releases>

        <enabled>true</enabled>

      </releases>

      <snapshots>

        <enabled>true</enabled>

   </snapshots>

  </pluginRepository>

</pluginRepositories>

</profile>

</profiles>

 

<activeProfiles>

<!--make the profile active all the time -->

<activeProfile>nexus</activeProfile>

</activeProfiles>

</settings>

在上面的配置信息中,我们定义了一个single group:nexus。 然后配置了repository以及pluginRepository并以id "central"命名,这个配置重写了super pom的同名的仓库。我们更改了仓库让其支持snapshots并且使用了伪造的URL替换了默认URL,这样nexus group能够包含release以及snapshot版的artifacts,并且maven可以使用它们。

 

    为Missing Denpendence添加一个自定义的仓库

    如果你曾经配置了maven settings.xml来列出nexus的public group里所有的仓库,你可能遇到你的项目无法在本地nexus取得artifacts信息。这很有可能是因为你尝试去构建在pom中定义的自定义仓库或者snapshotRepository。

    首先登陆nexus,默认的用户名和密码是admin/admin123,按图示进行选择:

 

在弹出框中选择Proxy Repository,填写表单后保存即可。

 

 

第二种方式也是nexus官方文档的做法,但是我没有配置成功,总是报无法找到xxx, 因为赶工期,也就暂时搁置不研究了。

 

 

原文地址:https://www.cnblogs.com/dycg/p/3106968.html