问题标签 [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 投票
2 回答
967 浏览

maven - Maven-release-plugin 和 builder-helper 插件


我想我错过了一些东西。
我想发布我的项目。
我将 maven-release-plugin 添加到我的 pom.xml 中。此外,除了 java 之外,我还有另一个源代码目录(称为 gen-src)。当我在 maven 发布(即准备)中迈出第一步时,一切都很好,但是当我执行时,它并没有考虑到 gen-src。

我怀疑它可能与相位是生成源的事实有关。我需要将添加源目标附加到另一个阶段吗?如果是,如何?
我也在这里读到- 这是类似的问题,虽然我没有使用 flex..no answer。任何想法?
谢谢。

0 投票
1 回答
313 浏览

.net - 使用 NPaday 和 Maven 发布插件进行版本控制

我正在开发一个使用 Maven 和 Npanday 的 C# .NET Web 服务项目。我们也想使用发布插件,但我发现了一个小版本问题。

当您进行构建时, NPanday 将(方便地)AssemblyInfo.cs使用 POM 文件中的版本号更新文件,但它不会提交对 SVN 的更改(我也不一定希望这样做)。

发布插件不知道AssemblyInfo.cs(我也不希望它知道)。但这意味着我的 AssemblyInfo.cs 和 POM 版本在发布操作期间不同步。

例如,假设我mvn release:branch要从主干创建一个 2.0.x 分支。在分支之前, POM 和AssemblyInfo.cs可能都在主干中的 2.0.0-SNAPSHOT,因此分支看起来与我预期的一样。但在更新后的主干中,POM 版本已更新(例如 2.1.0-SNAPSHOT),但 AssemblyInfo.cs 仍为 2.0.0-SNAPSHOT。

这不是一个大问题,因为mvn compile主干上的下一个将更新AssemblyInfo.cs并且有人会提交它。但更糟糕的是,release:prepare因为从分支创建的标签在 POM 中具有正确的版本(例如 2.0.0),但AssemblyInfo.cs仍然显示 -SNAPSHOT。当 release:perform 运行时,NPanday 将更新AssemblyInfo.cs文件,但随后该标签有一个浮动修改。

有谁知道用发布插件纠正这个问题的方法?我当然可以手动创建正确的分支/标签或编写自定义工具。或者我可以保持原样,说“AssemblyInfo.cs 文件不是最终版本源,POM 是。” 但我更喜欢两全其美。

0 投票
2 回答
298 浏览

maven - 具有自定义报告插件配置的 Maven 共同父级

我的团队有一个共同的父项目,其模块包含多个报告插件配置(例如 checkstyle 和 findbugs,类似于Checkstyle 的多模块配置,但在一个单独的项目中)。我将把共同的父项目称为“common”,将报告模块称为“build-tools”。

我正在尝试找到一种方法,以便在发布公共项目时让公共项目引用正确版本的构建工具模块,而无需手动发布。

以下是我尝试过的几件事:

  • 使用 ${project.version} 作为构建工具版本号。这使用项目中指定的版本号,使用公共作为父级。
  • 使用常规版本号。这些不会在公共项目中更新。
  • 使用属性。同样,属性值不会在发布时更新。

谢谢!

0 投票
1 回答
4945 浏览

maven-2 - 发布管理 - Maven、Bamboo 和 JIRA

我想找到使用 Maven 2、Bamboo 3.1 和 JIRA 4.3 管理版本的最佳方式。我尝试了很多事情,但由于错误或缺少功能,我一直在死胡同。

我的最终目标是让版本来自 JIRA,让 Bamboo 获取这些版本并使用 Maven 从它们构建人工制品,然后将这些人工制品部署到存储库(在我们的例子中是 Nexus)。

以下是我尝试过的方法:

1)在项目版本的所有 pom 中使用占位符:

家长会

儿童绒球

如果您从项目根 pom 开始构建并-Dci.version=<my-version>在命令行上指定,则会构建。将它与Bamboo 发布管理插件结合起来,我可以构建和部署我的模块版本并根据需要发布。

这种方法的问题是 Maven 在部署或安装时不会替换 poms 中的占位符变量,这意味着存储库中的 pom 在${ci.version}我真的希望它们具有具体版本时具有标记。由于占位符,这意味着没有人可以使用我部署的模块。见MNG-2971

2) 在 pom 中使用具体的 SNAPSHOT 版本,并使用 Bamboo 发布管理插件配置竹子以执行Maven 发布插件。

不幸的是,Maven 发布插件需要增加版本,竹子插件允许您获取当前版本的名称来构建,但不能获取下一个版本。如果没有这些信息,使用 Maven 发布插件会将版本增加到不受 JIRA 管理的内容。为了使这个选项起作用,我需要下一个可用的版本,或者能够在 Bamboo 发布管理插件完成后运行计划(第二个修复也会像你一样给提交日志添加额外的混乱获得一个自动增量的提交和一个正确增量的提交)。

2.b) 与 2) 相同,但是您必须在 Bamboo 中指定下一个版本,然后才能通过计划配置界面进行任何发布构建,手动将值设置为计划应该使用的下一个 JIRA 版本。这解决了 2) 的问题,但增加了额外的手动步骤。

3) 手动操作,可能使用 Maven 发布插件。完全忽略 Bamboo 中的所有发布功能,并通过调用 Maven Release Plugin 目标在需要时更改版本在命令行上手动管理发布。发生这种情况时,也需要手动发布 JIRA 版本。我们还需要配置一个竹子版本来运行和测试发布插件为非 SNAPSHOT 版本创建的标签。

这个选项涉及的过程太多,肯定会出错。

我不可能是唯一一个尝试使用这些技术自动发布的人,谁能帮忙。

谢谢

0 投票
1 回答
1450 浏览

maven-2 - 无法使用 maven 3.x 部署战争

我正在尝试使用 maven 3.x 将我的 web 应用程序部署到 tomcat 这里是 pom.xml 文件的快照

我在 Maven 中尝试了以下目标,mvn deploy但我得到以下构建失败并出现以下错误

做了一些谷歌搜索后,我将以下条目添加到我的 pom.xml

但我不确定 URL 应该是什么,因为 using${user.home}/m2/repository给出了另一个错误,导致构建失败

如何解决问题?

0 投票
1 回答
37 浏览

maven-3 - Maven:如何构建具有 Jboss、Tomcat 等结构的 Java 应用程序...?

如何构建具有 Jboss、Tomcat 等结构的 Java 应用程序...?

我有一个默认的 Maven Project -> Simple Project 。

我希望在构建后具有以下结构:

bin :所有 shell 文件,以便我可以逐个运行 jar。
lib :包含所有 JAR ,带有 My Java Classes
与 Jboss 、Tomcat 类似。

如何使用 Maven 或 Maven 插件?

0 投票
1 回答
2490 浏览

svn - maven 发布插件是否适用于分支?

当我从 \branches\branchone 中的一个分支执行 maven 发布插件时,它会为 \branches 创建一个标签

我希望插件只标记“分支”,但由于某种原因,它标记了整个“分支”。

这似乎是一个错误,插件应该使用当前的 scm “连接” url 来确定要标记的内容。

你知道为什么发布插件没有标记正确的目录吗?或者您知道任何解决方法吗?

0 投票
2 回答
49427 浏览

maven - 如何配置单个 Jenkins 作业以从主干或分支进行发布过程?

我目前正在改进我们在 Jenkins (1.430) 上的项目的发布过程。

当前发布工作

今天,对于一个特定的项目,我们有一项专门用于发布过程的工作。完整的程序如下:

  1. mvn versions:set -DnewVersion=2.0负责发布的开发人员手动更改所有pom.xml文件的版本(实际上是使用-SNAPSHOT.
  2. 然后,他在 SVN 中创建一个标签(例如http://my-svn-repo/project/tags/V_2_0)。
  3. 创建此标签后,他将登录我们的 Jenkins 服务器,并开始发布构建。
  4. 此构建将询问他要用于构建的标签。该作业被配置为参数化构建,带有参数List Subversion tags
  5. 然后 Jenkins 将从这个标签构建工件,并将它们部署在我们的 Nexus 实例上。
  6. 完成后,开发人员将 pom.xml 版本设置为新的开发版本(即2.1-SNAPSHOT)。

这种方法的优点是我只有 Jenkins 工作,因为构建将只依赖于一个标签。

但是,此过程涉及太多人为干预(pom.xml、提交、标签等的更改)。

新发布工作

现在,我使用 Maven 发布插件。我创建了一个作业,它向启动构建的用户询问三个信息:

  • 发布版本(releaseVersion发布插件的参数);
  • 发布后的开发版本(developmentVersion发布插件的参数);
  • 标签的名称(tag发布插件的参数)。

这项工作工作正常,除了一点:该工作基于主干或SVN中的分支。这意味着如果我有 2 个分支(除了主干),我将需要创建 3 个发布作业:每个分支一个。

一个保持两全其美的想法(即使用 mvn 发布,但保留 1 个发布作业)它添加一个构建参数,该参数将询问用户主干/分支的路径。因此,我不会在作业配置中设置http://my-svn-repo/project/trunk(或),而是设置,并要求用户输入参数。http://my-svn-repo/project/branches/BRANCH_V1http://my-svn-repo/project/$FROM_BRANCHFROM_BRANCH

此解决方案的问题是用户必须输入trunkbranches/BRANCH_Vx,这可能会导致错误。

理想情况下,我希望有一个构建参数可以让我选择分支(包括主干),因为存在用于选择标签的参数List Subversion tags...

所以我的问题是:有没有更好的方法来配置一个可以在所有分支上工作的 Jenkins 工作?

谢谢。


编辑:我发现验证字符串Jenkins 插件可能很有趣,以确保用户定义的值尊重某些正则表达式。这对我的情况很有帮助......

0 投票
1 回答
2715 浏览

git - mvn release:perform 从 git 分支失败:pom.xml 是否需要在 master 上具有相同的版本?

我们有几个非常相似的项目。我正在尝试从 git 分支进行 mvn 发布。(检查分支,然后执行 mvn release)。在某些项目上,这工作正常,在其他项目上 mvn release:prepare 工作得很好,但是当我做 mvn release:perform 时它失败了。

当它尝试执行“cd ...target/checkout && git pull ...”时失败,我明白了:

如果我手动执行命令,我会遇到 pom.xml 的 git 合并问题。我的猜测是,当 pom.xml 在 master 和 branch 上有不同的版本时,它会失败。即,如果 1.4 分支上的版本是 1.4.2-SNAPSHOT 并且主干上的版本是 1.5.0-SNAPSHOT 它会失败。

在我看来,不应该要求 pom 是相同的:我不是从 master 执行 mvn:release,而是从 git 分支执行。这不是那么可怕的奇怪,是吗?有人知道吗?

0 投票
1 回答
614 浏览

svn - maven-release-plugin:pom.xml 的 scm 部分中的文件夹是否相关?

我们使用标准 svn 布局(/branches/xy、/tags、/trunk)和 mvn release(即 maven-release-plugin)从分支执行发布。

我们通常会尝试确保该部分遵循分支,所以它看起来像这样

谁能告诉我最后的“branches/1.5”是否是绝对必要的?还是 maven-plugin 无论如何都能解决这个问题?如果它是错误的会发生什么 - 假设我在 1.5 分支上并且 pom 的 scm 部分说 1.4 或主干?我没有立即尝试的愿望。:-/