Maven的新手。
好的,所以我用Maven打包我的项目,但其中一个文件中有一些测试信息。我想更改该文件,但我保持停顿,因为保留了相同的项目版本号。
我不知道该怎么办!这些是我的选择吗?最好的方法是什么?
由于
答案 0 :(得分:3)
“从Maven中删除项目”究竟是什么意思?你的意思是从公共Maven存储库?
你可能应该像大多数项目那样提升版本,就像那样的“oops”时刻。发行说明理想地说明了为什么有新版本。理想情况下也是一个公告。
否则,您可能会冒险使用错误的版本,或者他们拥有固定版本的东西或其他任何东西。例如,我经常使用Maven离线选项(即-o
),因此我不会抓取最新的快照。
答案 1 :(得分:3)
我使用Maven打包我的项目,但其中一个文件中包含一些测试信息。我想更改该文件,但我保持停顿,因为保留了相同的项目版本号。
Maven永远不会在下载后使用修复版本(而不是SNAPSHOT
版本)重新下载已发布的工件(除非您从本地存储库中删除工件当然但你显然不能依赖那个)。这是保证再现性的唯一方法(如果我稍后重建,我会得到相同的行为)。并且本着同样的精神,你实际上无法使用固定版本重新发布工件。这是保证一致性的唯一方法(每个人都得到相同的东西)。
因此,如果要重新发布项目,则必须更改版本。
请注意,如果您的项目处于活动开发阶段,则应使用SNAPSHOT
版本。以下是Maven: Definitive guide关于它们的内容:
3.3.1.2. SNAPSHOT Versions
Maven版本可以包含字符串 字面意思是项目是 目前正在积极发展。如果 版本包含字符串 “SNAPSHOT”,然后Maven将扩大 此标记为日期和时间值 转换为UTC(协调 通用时间)安装时或 发布此组件。例如, 如果你的项目有一个版本 “1.0-SNAPSHOT”并部署了这个 项目的工件到Maven 存储库,Maven会扩展它 版本为“1.0-20080207-230803-1”如果 你是在11:08部署一个版本 PM于2008年2月7日UTC。其他 单词,当您部署快照时,您 没有发布软件 零件;你正在释放一个 特定组件的快照 时间。
你为什么要用这个?的快照 版本用于下的项目 积极发展。如果你的项目 取决于软件组件 正在积极发展,你可以 取决于SNAPSHOT版本,和 Maven会定期尝试 从a下载最新的快照 运行构建时的存储库。 同样,如果您的下一个版本 系统将有一个版本 “1.4”,你的项目将有一个 版本“1.4-SNAPSHOT”直到它 正式发布。
作为默认设置,Maven不会 检查远程SNAPSHOT版本 库。依赖SNAPSHOT 发布时,用户必须明确启用 下载快照的能力 使用存储库或pluginRepository POM中的元素。
发布项目时,您应该这样做 解决SNAPSHOT上的所有依赖项 版本依赖于发布 版本。如果一个项目依赖于 SNAPSHOT,它不稳定 依赖关系可能会随时间而变化。 工件发布到非快照 Maven存储库如 http://repo1.maven.org/maven2不能 取决于SNAPSHOT版本,如 Maven的Super POM有快照 从中央存储库禁用。 SNAPSHOT版本用于开发 仅