【问题标题】:How to run maven commands automatically, not from command?如何自动运行maven命令,而不是从命令?
【发布时间】:2020-05-29 03:53:48
【问题描述】:

我正在做一个项目,我需要构建一个用于版本控制和发布的 Maven 管道。 我是这样做的:

  1. 通过运行 mvn versions:set -DnewVersion=2.0.0 手动更改版本。
  2. 检查项目详细信息并检测它是快照还是发布。我有自己的自定义插件和返回最终版本的参数,例如2.0.0-SNAPSHOT但我如何返回此值并将其提供给另一个插件?
  3. 我编译项目并使用新名称生成 jar,从 2 开始。
  4. 还有……

我知道我可以通过 CL 命令处理每一步,但我想知道并让我感到困惑的是如何将所有内容嵌入到 pom.xml 中,然后只运行 mvn install ,仅此而已。

每个插件都需要一些能够改变它的参数。我知道我可以使用<configuration>下的<argument>标签,但是有些插件没有参数标签。

我怎样才能有一个可靠的解决方案并事先在我的父 POM 中配置所有内容? 我也有自己的插件,但我不确定是否可以将所有东西嵌入其中,我只是运行myplugin:Install

【问题讨论】:

    标签: java maven pom.xml maven-plugin parent-pom


    【解决方案1】:

    为了构建 SNAPSHOT,您通常只需在项目上运行 mvn clean verify。如果您需要特殊插件,您可以按照插件说明中的建议在configuration 部分进行配置。

    要构建发布版本,您应该使用构建服务器(如 Jenkins)。在那里,您可以比在 Maven 中更容易地构建所有步骤。如果由于某种原因,您不能这样做,请使用 maven 发布插件。

    【讨论】:

    • 谢谢,我在 Gradle 中使用 Archivia 和 ... 运行了一个设置,我只是在创建一个 Maven 构建解决方案来替换 gradle 任务。所以很明显我不能改变任何技术或工具。
    • 正如您在我的问题中看到的那样,我知道如何单独使用每个配置文件,但对将所有配置文件放在一起有点困惑,是的,我知道我可以使用 verify 但我有特殊情况,我是对我自己的插件感到满意,正如您在 OP 中看到的那样,只是想知道如何设置整个画面
    • 抱歉,但我需要强调的是,Maven 希望您遵循 Maven 的最佳实践,否则您很快就会遇到大问题。所以我的第一个目标是确保你真的真的真的确定你想走艰难而痛苦的道路,而不是 Maven 的道路。
    • 也就是说,您可以在 POM 中配置自己的插件(就像任何其他插件一样),您可以通过 <configuration> 部分设置所有插件参数。您还可以在 Maven 插件中设置 Maven 属性,并使用这些属性来配置其他插件。
    • 再次注意,除非这只是一个玩具项目,否则您最终将需要像 Jenkins、Bamboo、Circle CI、Travis CI 这样的构建服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2017-10-01
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多