在 settings.xml 中配置远程仓库
Pom.xml的作用范围是一个项目,一个公司不可能只做一个项目,那么为了避免重复配置,那么我们需要把一些公共信息配置在 setting.xml中。但是setting.xml中并不支持<repositories> 及<pluginRepositories>,为了解决这个问题我们使用profile:
- <settings>
- …
- <profiles>
- <profile>
- <id> myProfiel</id>
- <!—在这里加入<repositories>及<pluginRepositories>–>
- </profile>
- </profiles>
- <activeProfiles>
- <activeProfile> myProfiel </activeProfile>
- </activeProfiles>
- …
- </settings>
这里通过<activeProfile>元素来激活这个profile,这样我们就可以全局的使用这个配置,不再需要为每个POM做重复的配置了。
在实际的操作过程中,这里我们最好不要配置远程仓库,最好能够通过nexus建立公司或者组织自己的仓库,然后这把把地址指向自己的仓库,后面我会介绍为什么要这么做,怎么做。
配置镜像
如果你想覆盖中央仓库的默认地址,那么这里我们就会使用的镜像了,还在setting.xml里面配置:
- <settings>
- …
- <mirrors>
- <mirror>
- <id> maven-net-cn</id>
- <name> Maven China Mirror</name>
- <url> http://maven.net.cn/content/groups/public/</url>
- <mirrorOf> central</mirrorOf>
- </mirror>
- </mirrors>
- …
- </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文件中加入以下代码:
- <project>
- …
- <distributionManagement>
- <repository>
- <id> nexus-releases</id>
- <name> Nexus Release Repository</name>
- <url> http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
- </repository>
- <snapshotRepository>
- <id> nexus-snapshots</id>
- <name> Nexus Snapshot Repository</name>
- <url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
- …
- </project>
这里配置,让Maven知道当我要发布release版本或者snapshot版本是需要发布到哪个地址.
然后我们需要在setting.xml里面配置一下Nexus的帐号和密码:
- <settings>
- …
- <servers>
- <server>
- <id> nexus-releases</id>
- <username> admin</username>
- <password> admin123</password>
- </server>
- <server>
- <id> nexus-snapshots</id>
- <username> admin</username>
- <password> admin123</password>
- </server>
- </servers>
- …
- </settings>
到此为止, 我们就可以通过命令mvn deploy或者通过IDE的可视化界面点击deploy来发布我们项目到本地仓库了. 通过这种方式我们可以很方便的进行模块间的依赖开发, 在后面的文章中我会详细介绍如何通过snapshot来让我们的依赖开发变得简单.
小结
本文介绍了Maven仓库, 如何通过Nexus建立自己本地仓库, 通过和远程仓库的比较, 我们知道Nexus给我带来很多方便之处, 方便我们管理, 方便我们的项目构件部署, 项目的依赖开发等. 还在等什么, 创建你自己的仓库吧
相关推荐
在项目中使用Nexus** 完成配置后,需修改项目中的`pom.xml`文件,将默认的Repository指向本地的Nexus私服。例如,添加以下内容至`<repositories>`标签内: ```xml <enabled>true <id>public <name>...
**在项目中使用Nexus:** 1. 更新`pom.xml`中的`repository`元素,添加Nexus的URL,以便Maven在构建时查找依赖。 2. 发布构件到Nexus,需要配置`distributionManagement`元素,指定部署的目标仓库。 3. 使用Nexus的...
Nexus是一款强大的仓库管理器,由Sonatype公司开发,广泛应用于Java开发领域,尤其是Maven、Gradle等构建工具的项目。本教程将详细介绍如何...持续学习和理解Nexus的功能,将使你在软件开发中的组件管理更加得心应手。
为了让 Maven 在构建过程中自动部署项目到 Nexus,我们需要在 `pom.xml` 文件中添加部署插件的配置。具体配置如下: ```xml <groupId>org.apache.maven.plugins <artifactId>maven-deploy-plugin <version>...
在实际的企业开发中经常会遇到的问题:在进行Maven项目开发时,所需要的构件都是通过Maven的中央仓库或者第三方的Maven仓库下载到本地,那么企业内部开发使用也会遇到一些问题,团队内的每个使用者都需要去下载相应...
- 这些信息可用于配置Maven的`settings.xml`文件,从而让Maven能够从Nexus中获取依赖。 **3. Maven配置示例** ```xml <id>central <name>Central <url>...
- 完成以上步骤后,即可开始在项目中使用私有的Maven仓库了。可以通过配置项目的`settings.xml`文件来指向私有仓库地址,实现依赖的快速拉取。 #### 四、注意事项 - 在配置过程中,请根据实际需求灵活调整各项参数...
2. Gradle配置:在`build.gradle`文件中,可以使用`mavenCentral()`替换为指向Nexus的URL,或者在`settings.gradle`中配置仓库。 六、发布到Nexus 1. Maven发布:使用`mvn deploy`命令,Maven会将项目打包并上传到...
通过配置Maven Settings中的镜像设置,本地项目可以自动从Nexus中下载所需的依赖。如果没有找到相应的依赖,Nexus会自动从远程中央仓库下载,并保存到本地仓库中供后续使用。 2. **上传项目** 要将项目上传到...
在软件开发过程中,Maven作为Java项目管理工具,依赖于大量的第三方库,这些库通常存储在Maven中央仓库。然而,频繁地从远程仓库下载依赖可能会导致网络延迟,影响开发效率,尤其是在网络环境不稳定时。这时,使用...
4. **避免使用中文路径**:虽然不是最佳解决方案,但避免在路径中使用中文可以防止大部分问题。如果必须使用中文,可以尝试用URL编码(%E6%88%91%E7%9A%84%E8%AF%AD%E5%8F%A5)来代替。 5. **升级或安装补丁**:...
在本文中,我们将深入探讨Nexus的功能、安装与配置,以及如何在实际项目中有效地利用它。 1. **Nexus的用途** - **依赖管理**:Nexus作为一个中央仓库,存储项目所需的JARs和其他依赖,使得团队成员可以共享并访问...
在项目中使用Nexus私服,需要在POM文件中配置仓库地址,然后可以使用Maven的部署插件将自定义的jar包部署到Nexus。 **总结** Maven与Nexus的结合使用,极大地简化了Java项目的构建和管理流程,特别是在企业环境中...
在插件的设置中,添加Nexus服务器的URL,然后在Maven构建配置中选择该服务器作为代理。 4. **部署构件**:除了下载,你还可以通过Nexus将项目打包并部署到私有仓库。选择适当的仓库类型(如Snapshots或Releases),...
在IT行业中,构建工具是软件开发过程中的重要组成部分,它们帮助开发者自动化地编译、测试、打包和部署项目。"ant+ivy+nexus"的组合就是一种常用的Java项目构建和依赖管理解决方案。以下是对这个主题的详细解释: 1...
Maven Nexus 私服构件示例是一个实用的教程,旨在帮助开发者理解如何在本地环境中搭建和使用Nexus作为Maven的私有仓库。这个示例包括一个父Maven项目以及多个子项目,这些子项目涵盖了不同的模块,如业务逻辑、持久...
下面我们将详细介绍如何在Gradle项目中配置Nexus仓库。 #### 四、配置Gradle与Nexus 首先,我们需要在`build.gradle`文件中添加相应的配置。示例中的代码片段展示了如何配置Gradle以使用Nexus作为构件发布的目标。...