【问题标题】:Can't get checksum maven plugin to execute automatically无法让校验和 Maven 插件自动执行
【发布时间】:2015-11-06 18:45:11
【问题描述】:

我正在使用Maven Checksum Plugin,但在构建战争后执行它时遇到问题。这是我在该部分下的 superpom 中的配置:

<build>
    ...
    <pluginManagement>
        <plugins>
            <plugin>
                ...
            </plugin>
            <plugin>
                <groupId>net.ju-n.maven.plugins</groupId>
                <artifactId>checksum-maven-plugin</artifactId>
                <version>1.3-SNAPSHOT</version>
                <executions>
                    <execution>
                        <id>generate-artifact-checksum</id>
                        <phase>package</phase>
                        <goals>
                            <goal>files</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <fileSets>
                        <fileSet>
                            <directory>${project.build.directory}/artifacts</directory>
                        </fileSet>
                    </fileSets>
                </configuration>
            </plugin>
            <plugin>
                ...
            </plugin>
        </plugins>
    </pluginManagement>
</build>

当我运行mvn package 时,插件没有执行。不是有错误,只是没有执行。在构建过程中不会打印任何内容。战争被处理,构建被宣布成功,插件没有执行。

我尝试删除&lt;phase&gt; 实体并运行mvn verify,因为根据插件文档,checksum:files 目标自动绑定到verify 阶段。仍然没有执行。

但是,如果我运行,插件确实可以工作:

$ mvn checksum:files

我的配置中缺少什么?

【问题讨论】:

  • 在你的 superpom 中,这段代码是在pluginManagement 部分下还是只是plugins
  • 好吧,&lt;plugins&gt; 位于 &lt;pluginMangement&gt; 之下,而 &lt;build&gt; 本身位于 &lt;build&gt; 之下。我的其他插件配置也在那里,它们都可以工作。我已经更新了我的问题以反映更多的这种层次结构。在某些情况下,&lt;configuration&gt; 在个人&lt;execution&gt; 下,但这似乎不适用于此插件。它必须在&lt;execution&gt; 实体之外。

标签: maven pom.xml parent-pom


【解决方案1】:

插件未执行,因为它是在您的pompluginManagement 部分下声明的。

您应该像这样将checksum-maven-plugin 的配置移到pluginManagement 之外:

<build>
    <plugins>
        <plugin>
            ...
        </plugin>
        <plugin>
            <groupId>net.ju-n.maven.plugins</groupId>
            <artifactId>checksum-maven-plugin</artifactId>
            <version>1.3-SNAPSHOT</version>
            <executions>
                <execution>
                    <id>generate-artifact-checksum</id>
                    <phase>package</phase>
                    <goals>
                        <goal>files</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <fileSets>
                    <fileSet>
                        <directory>${project.build.directory}/artifacts</directory>
                    </fileSet>
                </fileSets>
            </configuration>
        </plugin>
        <plugin>
            ...
        </plugin>
    </plugins>
</build>

有关pluginManagement 部分的说明,请参阅this question

【讨论】:

  • 有趣。我把它放在&lt;pluginMagnagement&gt; 部分,因为这是一个超级 pom,我希望使用这个 POM 的项目自动生成校验和。插件管理下列出的所有其他插件都是标准插件,所以我想这就是我之前没有注意到它的原因。将其添加到非 &lt;pluginManagement&gt; 部分会导致 mvn install 失败,因为没有文件可以获取校验和。我尝试将failOnError 设置为false,但仍然无法安装。哦,好吧,我想我会手动执行checksum:files。反正主要是给詹金斯的……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多