`

在项目中使用nexus

 
阅读更多

 

settings.xml 中配置远程仓库

 

 

 

Pom.xml的作用范围是一个项目,一个公司不可能只做一个项目,那么为了避免重复配置,那么我们需要把一些公共信息配置在 setting.xml中。但是setting.xml中并不支持<repositories> 及<pluginRepositories>,为了解决这个问题我们使用profile:

 

  1. <settings>   
  2.   …   
  3.   <profiles>   
  4.     <profile>   
  5.       <id> myProfiel</id>   
  6.       <!—在这里加入<repositories>及<pluginRepositories>–>  
  7.     </profile>   
  8.   </profiles>   
  9.   <activeProfiles>   
  10.     <activeProfile> myProfiel </activeProfile>   
  11.   </activeProfiles>   
  12.   …   
  13. </settings>   

 

这里通过<activeProfile>元素来激活这个profile,这样我们就可以全局的使用这个配置,不再需要为每个POM做重复的配置了。

 

在实际的操作过程中,这里我们最好不要配置远程仓库,最好能够通过nexus建立公司或者组织自己的仓库,然后这把把地址指向自己的仓库,后面我会介绍为什么要这么做,怎么做。

 

 

 

配置镜像

 

 

 

如果你想覆盖中央仓库的默认地址,那么这里我们就会使用的镜像了,还在setting.xml里面配置:

 

  1. <settings>   
  2. …   
  3.   <mirrors>   
  4.     <mirror>   
  5.       <id> maven-net-cn</id>   
  6.       <name> Maven China Mirror</name>   
  7.       <url> http://maven.net.cn/content/groups/public/</url>   
  8.       <mirrorOf> central</mirrorOf>   
  9.     </mirror>   
  10.   </mirrors>   
  11. …   
  12. </settings>   

 

这里解释一下<mirrorOf>,表示只为central仓库做镜像,如果想为所有的仓库做镜像那么可以改为:<mirrorOf>*</mirrorOf>

 

Maven 中使用 Nexus

 

   到此为止我们介绍了如何安装和使用Nexus以及其基本配置, 下面我们介绍下如何让Maven来使用Nexus本地仓库用来替代使用远程仓库. 在Maven使用Nexus本地仓库只需稍作配置, 在settings.xml中加入以下代码:

  <profiles>

    <profile>

       <id>dev</id>

          <repositories>

              <repository>

                 <id>nexus</id>

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

                  <releases>

                     <enabled>true</enabled>

                  </releases>

                  <snapshots>

                     <enabled>true</enabled>

                  </snapshots>

               </repository>

             </repositories>           

             <pluginRepositories>

                 <pluginRepository>

                     <id>nexus</id>

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

                     <releases>

                         <enabled>true</enabled>

                     </releases>

                     <snapshots>

                         <enabled>true</enabled>

                     </snapshots>

                 </pluginRepository>

             </pluginRepositories>

         </profile>

     </profiles>

 

    <activeProfiles>

         <activeProfile>dev</activeProfile>

     </activeProfiles>

  

这里配置了repository和pluginRepository, Maven在使用第三方构件和插件时是分开来配置的,所以如果我们也希望插件的下载也通过我们的本地仓库来下载,那么我们就需要配置pluginRepository.

 

红色字体部分就是我们之前安装的Nexus的地址, 这个地址可以是你们公司局域网内部的一台仓库服务器.

 

<releases> <enabled>true</enabled></releases>这个标签的作用是设定是否允许下载 

 

release版本的载构件, 同样snapshots标签可以设定是否允许下载snapshot版本的构件.

 

通常,我们不建议下载snapshot版本的构件,因为它是不稳定的版本, 除非你有特殊的需

 

求.

 

构件部署

 

 

 

有些时候我们需要部署构件到Nexus的3rd party, 比如我们在中央仓库找不到我们需要的构件, 我们可以通过Nexus的UI来上传构件:

 

点击左边菜单栏的 Repositories, 然后点击右边界面的3rd party, 选择界面下方的Artifact Upload, 这个时候出现以下界面:

 

 

上传构件需要两个步骤,一个是定义文件的上传,再就是构件的实体文件.

 

第一部分定义文件可以是POM文件, 这也是比较推荐的方式, 如果没有pom文件,可以

 

选择以参数的形式输入.

 

第二部分是上传构件的实体文件,这里简单说一下Classifier和Extension, 这两个都是选

 

填相, Classifier用来区别同功能的构件用于不同的场景, 比如这个构件是分别针对JDK14

 

和JDK15做了2个功能一样的Jar, 这个时候你就需要指定这个构件的Classifier为JDK14

 

还是JDK15. Extension是指扩展名,如果不提供,那么会自动取这个构件的Packaging Type

 

作为扩展名, 比如 ear, jar, war 等等. (Packaging Type是在第一步中通过pom文件或者手

 

工输入得到的)

 

 

 

刚才说了3rd party的部署, 关于releases 和 snapshots的UI部署也是一样的操作过程.

 

我们之前也讲过, 这里的releases和snapshots是用来部署我们自己的项目构件的, 通过

 

UI部署是可以,但是不是最高效的, 我们可以通过配置Maven来自动部署我们的项目构

 

件,这也是我们建立自己的仓库的一个非常重要的原因, 下面就让我们看看如何配置:

 

首先需要在POM文件中加入以下代码:

 

  1. <project>   
  2. …   
  3. <distributionManagement>   
  4.   <repository>   
  5.     <id> nexus-releases</id>   
  6.       <name> Nexus Release Repository</name>   
  7.       <url> http://127.0.0.1:8081/nexus/content/repositories/releases/</url>   
  8.   </repository>   
  9.   <snapshotRepository>   
  10.     <id> nexus-snapshots</id>   
  11.     <name> Nexus Snapshot Repository</name>   
  12.     <url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>   
  13.   </snapshotRepository>   
  14. </distributionManagement>   
  15. …   
  16. </project>   

 

这里配置,让Maven知道当我要发布release版本或者snapshot版本是需要发布到哪个地址.

 

然后我们需要在setting.xml里面配置一下Nexus的帐号和密码:

 

  1. <settings>   
  2. …   
  3. <servers>   
  4.   <server>   
  5.     <id> nexus-releases</id>   
  6.     <username> admin</username>   
  7.     <password> admin123</password>   
  8.   </server>   
  9.   <server>   
  10.     <id> nexus-snapshots</id>   
  11.     <username> admin</username>   
  12.     <password> admin123</password>   
  13.   </server>      
  14. </servers>   
  15. …   
  16. </settings>

 到此为止, 我们就可以通过命令mvn deploy或者通过IDE的可视化界面点击deploy来发布我们项目到本地仓库了. 通过这种方式我们可以很方便的进行模块间的依赖开发, 在后面的文章中我会详细介绍如何通过snapshot来让我们的依赖开发变得简单.

 

 

小结

本文介绍了Maven仓库, 如何通过Nexus建立自己本地仓库, 通过和远程仓库的比较, 我们知道Nexus给我带来很多方便之处,  方便我们管理, 方便我们的项目构件部署, 项目的依赖开发等. 还在等什么, 创建你自己的仓库吧

分享到:
评论

相关推荐

    使用maven私服nexus

    **在项目中使用Nexus:** 1. 更新`pom.xml`中的`repository`元素,添加Nexus的URL,以便Maven在构建时查找依赖。 2. 发布构件到Nexus,需要配置`distributionManagement`元素,指定部署的目标仓库。 3. 使用Nexus的...

    nexus私服搭建以及使用教程

    Nexus是一款强大的仓库管理器,由Sonatype公司开发,广泛应用于Java开发领域,尤其是Maven、Gradle等构建工具的项目。本教程将详细介绍如何...持续学习和理解Nexus的功能,将使你在软件开发中的组件管理更加得心应手。

    ECLIPSE实现MAVEN项目自动部署NEXUS中

    为了让 Maven 在构建过程中自动部署项目到 Nexus,我们需要在 `pom.xml` 文件中添加部署插件的配置。具体配置如下: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-deploy-plugin &lt;version&gt;...

    使用Nexus搭建Maven私服

    在实际的企业开发中经常会遇到的问题:在进行Maven项目开发时,所需要的构件都是通过Maven的中央仓库或者第三方的Maven仓库下载到本地,那么企业内部开发使用也会遇到一些问题,团队内的每个使用者都需要去下载相应...

    Nexus Repository Manager的使用

    - 这些信息可用于配置Maven的`settings.xml`文件,从而让Maven能够从Nexus中获取依赖。 **3. Maven配置示例** ```xml &lt;id&gt;central &lt;name&gt;Central &lt;url&gt;...

    在CentOS下使用nexus搭建maven私服的安装教程

    - 完成以上步骤后,即可开始在项目中使用私有的Maven仓库了。可以通过配置项目的`settings.xml`文件来指向私有仓库地址,实现依赖的快速拉取。 #### 四、注意事项 - 在配置过程中,请根据实际需求灵活调整各项参数...

    使用Nexus创建私服

    2. Gradle配置:在`build.gradle`文件中,可以使用`mavenCentral()`替换为指向Nexus的URL,或者在`settings.gradle`中配置仓库。 六、发布到Nexus 1. Maven发布:使用`mvn deploy`命令,Maven会将项目打包并上传到...

    使用Maven&nexus上传下载至私库

    通过配置Maven Settings中的镜像设置,本地项目可以自动从Nexus中下载所需的依赖。如果没有找到相应的依赖,Nexus会自动从远程中央仓库下载,并保存到本地仓库中供后续使用。 2. **上传项目** 要将项目上传到...

    使用nexus 搭建 maven 本地仓库

    在软件开发过程中,Maven作为Java项目管理工具,依赖于大量的第三方库,这些库通常存储在Maven中央仓库。然而,频繁地从远程仓库下载依赖可能会导致网络延迟,影响开发效率,尤其是在网络环境不稳定时。这时,使用...

    nexus中文路径问题

    4. **避免使用中文路径**:虽然不是最佳解决方案,但避免在路径中使用中文可以防止大部分问题。如果必须使用中文,可以尝试用URL编码(%E6%88%91%E7%9A%84%E8%AF%AD%E5%8F%A5)来代替。 5. **升级或安装补丁**:...

    【maven】Nexus使用

    在本文中,我们将深入探讨Nexus的功能、安装与配置,以及如何在实际项目中有效地利用它。 1. **Nexus的用途** - **依赖管理**:Nexus作为一个中央仓库,存储项目所需的JARs和其他依赖,使得团队成员可以共享并访问...

    maven相关.docx

    在项目中使用Nexus私服,需要在POM文件中配置仓库地址,然后可以使用Maven的部署插件将自定义的jar包部署到Nexus。 **总结** Maven与Nexus的结合使用,极大地简化了Java项目的构建和管理流程,特别是在企业环境中...

    nexus私服的操作

    在插件的设置中,添加Nexus服务器的URL,然后在Maven构建配置中选择该服务器作为代理。 4. **部署构件**:除了下载,你还可以通过Nexus将项目打包并部署到私有仓库。选择适当的仓库类型(如Snapshots或Releases),...

    ant+ivy+nexus的使用

    在IT行业中,构建工具是软件开发过程中的重要组成部分,它们帮助开发者自动化地编译、测试、打包和部署项目。"ant+ivy+nexus"的组合就是一种常用的Java项目构建和依赖管理解决方案。以下是对这个主题的详细解释: 1...

    maven nexus私服构件示例

    Maven Nexus 私服构件示例是一个实用的教程,旨在帮助开发者理解如何在本地环境中搭建和使用Nexus作为Maven的私有仓库。这个示例包括一个父Maven项目以及多个子项目,这些子项目涵盖了不同的模块,如业务逻辑、持久...

    gradle与nexus完美结合

    下面我们将详细介绍如何在Gradle项目中配置Nexus仓库。 #### 四、配置Gradle与Nexus 首先,我们需要在`build.gradle`文件中添加相应的配置。示例中的代码片段展示了如何配置Gradle以使用Nexus作为构件发布的目标。...

Global site tag (gtag.js) - Google Analytics