问题标签 [maven-release-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
82 浏览

maven-plugin - 用于 Maven 发布插件的脚本响应

我们是 SVN/Maven/Hudson 商店。我们正在尝试使用 Maven 发布插件来帮助自动化我们非常费力的标记和发布过程。我们对我们所看到的内容感到满意,并且迄今为止对此插件进行了研究。

我们的问题是——如果我们需要为一些正在构建的模块/应用程序设置不同的标签,有没有办法编写响应脚本?

我们已经成功地完成了交互式试运行,但是我们希望将这些脚本编写出来以进一步实现我们的自动化。

有没有人试过这个或知道这是否可能?

“批处理模式”是否允许此功能?

谢谢

乔·R

0 投票
4 回答
4803 浏览

svn - Maven 和颠覆

我正在研究 Maven 和 Subversion。

我创建了一个 Maven 项目。现在我想将它指向我的存储库(由 TortoiseSVN 创建)。我在一篇关于 Maven 和 Subversion 的教程中读到我应该更改pom.xml文件。按照这些说明,我添加了一个scm标签,如下所示:

但是,当我尝试时mvn release:prepare,我得到一个错误:

会发生什么?

0 投票
2 回答
498 浏览

java - 使用 Maven 发布

最近发布了一个maven项目,忍不住想整个过程非常复杂,容易出错。假设我有一个应用程序,它由 3 个模块 A、B 和 C 组成,每个模块在 subversion 中都有自己的文件夹,在 Hudson 中有一个单独的构建作业。每个模块都有一个父 POM,它聚合了多个工件。A 依赖于 B,B 依赖于 C。依赖版本在顶级 POM D 中定义,它是 A、B 和 C 的父级。它除了确保所有版本都保存在一个位置之外,什么也不做。整个项目中使用的每个工件只有一个版本。为了发布,我执行以下操作:

  1. 通过 Hudson 使用发布插件发布顶级 POM D。
  2. 从没有进一步依赖关系的 C 开始。
  3. 更改 C 以引用 D 的已发布版本。使用发布插件发布 C。
  4. 在 D 中输入 C 的发布版本,这样依赖 C 的模块就可以用 C 的稳定版本发布。
  5. 使用发布插件再次发布 D。
  6. 为 B 做 3-5
  7. 为 A 做 3-5

之后,我对 A、B 和 C 中的所有工件进行了稳定的非快照构建,并且可以将它们组装在一起以形成应用程序的最终稳定版本。

实际上,我不仅有 3 个,而且有 20 个这样的模块。现在我发现这个过程非常复杂,我认为它有很多潜在的问题:

  • 我需要多次发布 D,对于依赖层次结构中的每个级别一次。最后,我得到了 D,其中只有稳定版本的 A、B 和 C。要继续下一个开发版本,我必须再次编辑 D 并引用已发布模块的所有新快照版本。通常,依赖管理必须全部手动完成,即使使用发布插件也是如此。

  • 如果有人在我发布时提交,可能会搞砸事情。为了确保我必须检查所有模块的特定修订版,构建并测试它,然后发布该修订版上的所有模块。但是,我如何确保 Hudson 和多个工作?

  • 依赖于 3 个不同的系统:Subversion 服务器、Hudson 服务器和 Maven 存档服务器。如果只有一个倒下,我就不能再释放了。

  • 耗时的。在这个过程中,我发布的每个模块一次又一次地进行大量的构建、打包、上传、下载、提取等。与存档发生大量冗余数据交换。但实际上一切都可以在本地完成,因为 Hudson 拥有它需要的所有源代码。最后只需要上传一次最终包。

  • 假设我在存档服务器上丢失了包。没有简单的方法可以告诉 Hudson 检查标记的版本并以正确的顺序重新构建它们。

为什么这不像一次性检查所有代码、调整一个全局版本、构建和测试它、提交、标记提交并最终上传二进制文件那样简单?

感谢您对此的任何想法。

0 投票
1 回答
761 浏览

maven - 在 Nexus 的 maven-matadata.xml 中发布版本错误

我的 maven-metadata.xml 在 Nexus 中没有正确的 RELEASE 版本。我正在使用 Nexus 1.8.0.1。我们使用 maven-release-plugin 部署到 Nexus,日志表明它更新了元数据。我们还看到正确的版本被添加到版本集中。只是<release>版本不正确。

我尝试使用 Nexus UI 重新创建文件,但没有任何乐趣。

干杯,

杰夫

0 投票
2 回答
531 浏览

maven-2 - Maven 发布期间对其他程序集的模块间依赖关系

我们有一个包含以下模块的多模块项目:

  • 数据库
  • 持久性
  • 商业
  • 应用

“数据库”项目是一个 jar 项目,它使用“maven-assembly-plugin”创建附加程序集。此附加程序集包含数据库架构。

插件配置如下:

“应用程序”项目创建应用程序目录结构的压缩版本。因此,它引用模式程序集以便将其提取并复制到应用程序目录结构中的适当位置。引用表示为普通的maven依赖:

至少有一个多模块项目,它聚合了 4 个子模块,以便一步构建应用程序。

在聚合项目上运行“mvn deploy”可以正常工作。提取并复制数据库模式程序集。但是,当在构建“应用程序”项目的聚合项目上运行“mvn release:prepare”时,会出现错误通知,即 maven 无法找到版本为“0.0.1”的模式程序集。日志文件指出“持久性”项目已在“应用程序”项目之前构建,并且“数据库模式”程序集已构建。

有人知道我做错了什么吗?

0 投票
3 回答
14982 浏览

git - 如何让 Maven 版本与 git 一起使用?

试图释放,我总是得到这个:

“命令输出”没有任何内容。

是否有一些秘密的配置技巧可以让 maven 与 git 配合得很好?

0 投票
1 回答
1499 浏览

maven-2 - Maven Svn SCM 删除标签

我正在尝试实现一个 maven 插件,但遇到了 scm 的一些问题。该插件需要删除一个标签,但我找不到这样做的方法。有人对这个 API 有经验吗?

0 投票
2 回答
4211 浏览

java - Maven2字符串索引超出范围:rewrite-poms-for-release期间getCommonBasedir上的-1

这是我在使用 maven 发布插件进行发布时遇到的问题的摘录。我认为这与显示在 reactorProjects 中的 basedir 大写/小写 c:\ 有关,但我不知道如何修复它。我的 Maven 版本是:

这是构建失败的部分:

有什么想法吗?

0 投票
2 回答
9974 浏览

hudson - 使用 maven 发布插件 autoVersionSubmodules 来增加主要版本

我在 hudson 上使用 maven 发布插件,将 autoVersionSubmodules 设置为 true 以自动增加 poms 中的开发版本。

我想知道是否有办法让插件增加主要版本而不是次要版本。

目前,当我使用 1.1.0-snapshot 版本时,下一个版本设置为 1.1.1-snapshot,但理想情况下我希望它更改为 1.2.0-snapshot。

关于如何实现这一目标的任何想法?

谢谢。

0 投票
1 回答
1771 浏览

maven - 禁用父 pom 中定义的 Maven 发布插件

我是新手。我的产品结构如下

maven 发布插件是在公司级别的pom.xml文件中定义的,该文件是myWebProduct. 它设置了发布插件运行的默认目标deploy和默认的preparationGoals clean verify install

我想在myWebProduct工作正常的级别发布产品,但我想跳过发布htmlTestModule. 因为deploy生命周期开启htmlTestModule会导致将war文件部署到远程Tomcat服务器,我不希望在发布期间发生这种情况。

我试图pom.xmlhtmlTestModule.

但是在运行 'mvn release:perform' 时myWebProduct。我已经看到部署目标仍然在htmlTestModule. 有人可以帮忙吗?

我还尝试了以下操作htmlTestModule

尽管如此,部署目标始终在htmlTestModule. 谢谢