【问题标题】:maven release plugin, git, and the pom's not at the topmaven 发布插件、git 和 pom 不在顶部
【发布时间】:2014-03-12 05:47:48
【问题描述】:

我有一个 git repo,其中顶级目录包含三个目录:java、COM 和 csharp。正如您可能猜到的那样,pom.xml 位于 java 目录中。

在我运行发布插件之前一切都很好。它将整个 repo 克隆到目标/结帐中,然后期望 pom 就在顶部。不是。故事结束。

我可以告诉发布插件额外的目录,还是我必须拆分repro?

【问题讨论】:

  • 未经测试:也许 pomFileName 是你的朋友?

标签: git maven-2


【解决方案1】:

已测试:将以下内容添加到您的构建/插件部分:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.2.1</version>
    <executions>
        <execution>
            <id>default</id>
            <goals>
                <goal>perform</goal>
            </goals>
            <configuration>
                <pomFileName>subdir/pom.xml</pomFileName>
            </configuration>
        </execution>
    </executions>
</plugin>

其中“subdir”是 pom.xml 所在目录的相对路径。

至少在 Maven 3.0.3 中有效。可能适用于不同的发布插件版本,但这未经测试。

这适用于 Maven 3.0.4 和 maven-release-plugin 2.5 和 git 1.8.x。

【讨论】:

  • 也适用于 Maven 2.2.1(使用 maven-release-plugin:2.2.1)。但是为什么我们必须在executions层次结构下定义pomFileName而不是直接在configuration下。单行配置有很多东西吗?
  • 嗯,我把它放在executions 下的原因是为了将配置定位到特定目标。如果您确定它不会干扰其他目标,它可能会直接在 configuration 中工作。
  • 虽然这似乎适用于 maven 3.0.4,但它不会将更改提交到 Git 存储库。使用最新版本的插件会提交更改,但无法识别 pomFileName 配置。
【解决方案2】:

使用 maven-release-plugin 版本 2.4(同时使用 maven 3.0.3 和 3.0.4)在非根目录中未正确部署执行版本。降级到 maven-release-plugin 版本 2.2.1 解决了这个问题。

【讨论】:

  • 使用 maven 3.0.4,它不适用于 2.1 版本(继承自 sonatype OSS pom)。我也必须使用 2.2.1。
猜你喜欢
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2014-08-05
相关资源
最近更新 更多