Maven exec-maven-plugin和maven-resources-plugin没有运行,不知道为什么。

最后发布: 2020-08-03


问题

我在一个maven中加入了几个新插件 pom.xml 文件。

我一直想不通为什么 exec-maven-pluginmaven-resources-plugin 当我发出命令时,它们没有运行。mvn install. 其他的 maven 插件确实按照预期执行。

当我运行 mvn exec:exec, exec-maven-plugin 确实得到运行。

我试过使用一些不同的阶段,但没有用。

我到底做错了什么,应该怎么做?


下面是我的maven文件的相关部分

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
            <execution>
                <id>build-spa-bower</id>
                <phase>validate</phase>
                <configuration>
                    <executable>bower</executable>
                    <arguments>install</arguments>
                    <workingDirectory>src/main/spa</workingDirectory>
                </configuration>
            </execution>
            <execution>
                <id>build-spa-grunt</id>
                <phase>validate</phase>
                <configuration>
                    <executable>bower</executable>
                    <arguments>install</arguments>
                    <workingDirectory>src/main/spa</workingDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
            <execution>
                <id>resource-spa</id>
                <phase>compile</phase>
                <configuration>
                    <outputDirectory>${project.groupId}/${project.artifactId}/spa</outputDirectory>
                    <resources>
                        <directory>src/main/spa/dist</directory>
                        <filtering>false</filtering>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <!-- ... -->
</plugins>

EDIT.找到了exec插件的答案,但还没有找到资源插件的答案。

找到了执行插件的答案,但还没有找到资源插件的答案。

exec插件需要一个目标才能触发。

添加 <goals><goal>exec</goal></goals> 给每个 <execution> 对我来说是个好办法。

maven maven-plugin pom.xml exec-maven-plugin maven-resources-plugin
回答

如果你把你的配置放在一个 <execution/> 你需要指定哪些目标需要在这个执行中运行。

对于默认链接到一个阶段的插件,你也可以在下面的 <executions/> 并且该配置将在该插件的默认阶段使用。


回答

找到答案了。

exec插件需要一个目标才能触发。

添加 <goals><goal>exec</goal></goals> 给每个 <execution>.

资源插件问题也得到了类似的修复。

增加 <goals><goal>copy-resources</goal></goals> 给每个 <execution>.

这些对我很有用


回答

还有

<phase>prepare-package</phase>

是强制性的。