之前有过几篇文章介绍了mavven中release和snapshot库的作用,如下(不太了解的可以参考看一下):
1、maven2中snapshot快照库和release发布库的应用
2、maven中snapshot快照库和release发布库的区别和作用
另外,今天在使用snapshot快照库时遇到一个问题,我一个构件的发布配置如下(在构件的pom文件中):
<modelVersion>4.0.0</modelVersion>
<groupId>cc.mzone</groupId>
<artifactId>workflow</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<distributionManagement>
<repository>
<id>kt</id>
<url>http://192.168.1.112/nexus/content/repositories/kt</url>
</repository>
<snapshotRepository>
<id>kt-snapshot</id>
<url>http://192.168.1.112/nexus/content/repositories/kt-snapshot</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
</distributionManagement>
这个是构件的发布配置,其中snapshot快照库中使用了uniqueVersion为true,这个表明每次发布都会在服务器上留下一个新版本(加上时间后缀的版本)。这个true和false不影响快照库,只是是否节省服务器空间的问题。在通过mvn deploy发布到服务器后,在依赖该构件的项目的pom文件中写上依赖:
<dependency>
<groupId>cc.mzone</groupId>
<artifactId>workflow</artifactId>
<version>0.1-SNAPSHOT</version>
</dependency>
然后在该项目中执行:mvn eclipse:eclipse进行其依赖构件的下载,结果却发现提示如下:
[WARNING] An error occurred during dependency resolution.
Failed to retrieve cc.mzone:workflow-0.1-SNAPSHOT
Caused by: Unable to download the artifact from any repository
Try downloading the file manually from the project website.
刚开始不太清楚原因,经过查证比对,发现是因为项目没有开启snapshot快照库的缘故!知道了原因,解决就好办了,有两种方法可以解决:
1、第一种方法是在项目的pom文件中进行配置,如下:
<repositories>
<repository>
<id>cc-mzone-nexus</id>
<name>MZONE</name>
<url>http://192.168.1.112/nexus/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:5</updatePolicy>
</snapshots>
</repository>
</repositories>
2、第二种方法是在maven的配置文件(conf/settings.xml)中进行配置,如下:
<profiles>
<profile>
<id>cc-mzone-profile</id>
<repositories>
<repository>
<id>cc-mzone-nexus</id>
<name>MZONE</name>
<url>http://192.168.1.112/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:10</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>cc-mzone-profile</activeProfile>
</activeProfiles>
以上两种方式都是打开snapshot快照库,允许快照库生效(重要就是snapshot中enabled要设置为true),第一种是项目级别的,第二种是全局的。出现的问题当然主要还是默认snapshot快照库是没有生效导致的,如此配置即可解决问题!
分享到:
相关推荐
然而,对于快照(Snapshot)版本,每当app-ui团队构建项目时,Maven会自动获取data-service:1.0-SNAPSHOT的最新快照。快照版本存储在Snapshot仓库,而稳定的发行版本(Release)存储在Release仓库。 在pom.xml文件...
完成这些步骤后,Maven会自动从仓库下载对应的jar包,并将其添加到你的项目类路径中,使你能够直接使用库中的功能。 总之,Maven仓库搜索服务是开发者日常工作中不可或缺的工具,它简化了依赖管理,提高了开发效率...
* maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。 2. component type: * hosted:类型的仓库,内部项目的发布仓库 * releases:内部的模块中release...
此外,Nexus还支持SNAPSHOT版本的管理,使得开发过程中的快照版本更新更加便捷。Nexus的使用不仅简化了开发流程,也有助于团队协作和持续集成环境的搭建。 总之,掌握Nexus构建Maven仓库的方法以及Maven的基本命令...
Maven是Java开发中广泛使用的构建工具,它管理项目依赖、构建流程,并且支持自定义插件。本主题聚焦于如何通过Maven代码自动将本地仓库中的包上传到Maven私有仓库(Nexus或Artifactory等)。这个过程通常在项目开发...
9. **版本管理**:Maven遵循语义版本规则,通过`SNAPSHOT`标识进行快照版本管理,方便持续集成和开发。 通过正确配置和使用Maven,开发人员可以从中央仓库高效地下载所需依赖,从而提高开发效率,减少寻找和管理JAR...
在Maven仓库中,通常会按照这样的命名规则来组织SNAPSHOT版本,以便跟踪和更新开发中的库。 总的来说,"netcdfAll-5.5.4-SNAPSHOT.jar"是一个包含NetCDF Java库所有组件的JAR文件,适用于Java项目,特别是那些使用...
本地库存储了项目在构建过程中使用的所有依赖,包括JAR文件和其他资源。这些依赖来自于Maven中央仓库或者其他远程仓库,下载后会缓存到本地库,以便后续构建时快速访问,减少网络请求。 Maven的本地库默认位于用户...
最终,该想法是要提供一种服务,该服务可以在一次往返中告诉您自上次构建以来已更改的所有快照依赖项,然后使用此信息来缩短对远程存储库的请求(如果有依赖项)尚未发布新快照,因此无需获取maven-metad
Maven 3.0.4 支持SNAPSHOT版本,这允许开发人员在开发过程中跟踪项目的快照版本。每次构建SNAPSHOT版本时,Maven都会检查远程仓库是否有新的更新。 7. **聚合与继承** 多模块项目可以通过聚合(aggregation)和...
"Maven 私服使用 Jar 包详解" 在项目中通过 Maven 私服来使用 Jar 包是一个常见的实践,通过配置 Maven 设置和项目...同时,通过配置快照库,可以在测试中使用快照版的 Jar 包,然后在正式环境中使用正式版的 Jar 包。
Maven中央仓库是Java开发者广泛使用的资源库,它允许开发者共享和获取依赖。以下是一个详细的教程,教你如何将Java项目发布到Maven中央仓库。 **一、注册账号和提交申请** 1. **注册账号**: 首先,你需要访问...
### Nexus Maven内部库配置安装手册知识点 ...通过以上详细的知识点梳理,我们可以了解到如何使用Nexus构建自己的Maven内部库,并掌握其核心功能和配置方法。这对于优化企业的软件开发流程、提高效率具有重要意义。
1. **多平台支持**:`android-snapshot-publisher`支持将快照版本发布到不同的分发源,包括本地文件系统、Maven仓库或其他自定义存储库,满足不同环境和需求。 2. **版本管理**:自动管理APK的版本代码和版本名称,...
4. **版本管理(Version Management)**:使用SNAPSHOT版本跟踪项目快照,方便持续集成。 5. ** profiles(配置文件)**:针对不同的环境(如开发、测试、生产)定义不同的配置。 **六、Maven与持续集成** Maven与...
1. **安装Maven**:首先需要从Apache官网下载Maven3的最新版本,并配置环境变量,确保`mvn`命令可以在命令行中使用。 2. **创建新项目**:使用`mvn archetype:create`命令生成一个基本的Maven项目结构,包括src/...
- **Windows**:在 `%NEXUS_INSTALL_DIR%\nexus-webapp-1.0.0\binjsw\windows-x86-32` 目录下,使用 `InstallNexus.bat` 可以安装 Nexus 为 Windows 服务,而 `Nexus.bat` 则可以在命令行中直接启动 Nexus。...
其中,快照版本(`SNAPSHOT`)用于表示开发中的不稳定版本。 5. **示例POM**:```xml <modelVersion>4.0.0 <groupId>com.itmuch.maven.hello</groupId> <artifactId>hello-first <version>0.0.1-SNAPSHOT ``` ...
Maven 3.3.9 改进了对SNAPSHOT版本的处理,确保了开发过程中快照版本的正确更新和引用。 8. **性能优化** 该版本提升了构建速度,减少了内存占用,并修复了一些已知性能问题,提供了更好的用户体验。 9. **...