【问题标题】:Howto resolve ranges during release with release plugin如何使用发布插件在发布期间解析范围
【发布时间】:2012-03-12 12:10:00
【问题描述】:

我们使用 maven-release-plugin 将我们的 maven 组件发布到存储库。但是,其中一些组件在我们的某些依赖项上使用范围。我们想要这个是因为一些依赖项经常被释放(快照不是一个选项)

当我们使用发布插件时,范围会被检入 scm 并部署到我们的 maven repo。这没有任何意义,因为 maven 存储库中未解析的 pom 文件可以(并且将)确保其他构建从一个构建更改为另一个构建。

我们尝试使用 release:prepare-with-pom,但它只是创建了一个提交给 scm 的新 pom 文件(release-pom.xml)。带有范围的原始 pom 仍然部署到 repo。

作为另一个障碍,我们希望保留下一个开发版本的范围。所以我们的头部/躯干不应该被解决。

我有这种感觉,我们正在以错误的方式解决这个问题。

谁能帮我们解决我们的问题?如果有其他方法可以做到这一点,我们将不胜感激您的建议。

【问题讨论】:

  • 问题是:为什么没有快照选项?特别是对于依赖项,因为它们完全适用于这种情况。
  • 在这种情况下,快照不是一个选项,因为模块不是由 Maven 生成的。对于经过官方测试的系统而言,如果总体上使用快照是一个好主意,则超出了本主题的范围。

标签: java maven build


【解决方案1】:

我偶然发现了两个已知的 maven 发布插件错误。请参阅以下错误报告:

这些计划在 maven-release-plugin 的 2.2.3 或 2.3 版本中发布

编辑作为对已发布 cmets 的回应: 我同意这些错误解决我的问题的原因并不明显。我会尝试详细说明。

要让发布插件使用解析的 pom 文件并部署它,您需要首先使用 release:prepare-with-pom 然后发布:perform。如果要执行部署已解析的 pom 文件,则需要将 config 中的 pomFileName 设置为 release-pom.xml。如果不是,它会部署未解析的 pom.xml。使用范围部署 pom 文件不是一个好主意。这就是需要 618 的原因。

需要 727 是因为 release-pom.xml 仅在标签上签入。执行 release:perform 时,您的标签已在目标目录中检出。因为 og 插件正在模块根目录中寻找 release-pom.xml 并且出现空的错误。如果没有 pomFileName 配置,这也可能出错,但可能性较小。

范围在 Maven 中通常不是一个好主意,因为它有问题,而且 Maven 默认情况下不会部署已解析的 pom 文件。如果 Maven 总是部署解析的 pom 文件范围将是一个好主意。

【讨论】:

  • 您认为这些错误与您的问题有关的原因并不明显。你能扩展答案吗?
  • 618 和 727 都与上述问题无关。
  • 上述问题是基于在依赖项中使用版本范围而出现的,这是一种不好的做法,结果如上所述。
猜你喜欢
  • 2021-11-10
  • 2020-09-07
  • 2019-06-18
  • 2012-02-17
  • 2015-06-06
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2012-05-28
相关资源
最近更新 更多