Maven 为什么我的目标没有被执行?
我正试图为部署做好准备,因此我希望在所有内容都打包到WAR文件中进行部署或开发之前,将正确的配置文件复制到Maven 为什么我的目标没有被执行?,maven,m2e,maven-antrun-plugin,Maven,M2e,Maven Antrun Plugin,我正试图为部署做好准备,因此我希望在所有内容都打包到WAR文件中进行部署或开发之前,将正确的配置文件复制到WEB-INF/classes/ 最后,我希望在调用时执行部署任务 mvn glcoud:deploy -当我需要部署配置文件和开发任务时,只要在我的项目目录中执行其他任务 目前我还没有决定我到底要怎么做,但首先我尝试执行这样一个“虚拟任务”。不幸的是,它不起作用 这是我在pom.xml中配置的配置文件: 默认配置文件 “ 下面的解决方案给出了相同的“生命周期配置未涵盖插件执行”错误
WEB-INF/classes/
最后,我希望在调用时执行部署任务
mvn glcoud:deploy
-当我需要部署配置文件和开发任务时,只要在我的项目目录中执行其他任务
目前我还没有决定我到底要怎么做,但首先我尝试执行这样一个“虚拟任务”。不幸的是,它不起作用
这是我在pom.xml
中配置的配置文件:
默认配置文件
“
下面的解决方案给出了相同的“生命周期配置未涵盖插件执行”错误
默认配置文件
真的
org.apache.maven.plugins
maven antrun插件
1.8
maven antrun插件
我也看到了同样的情况:
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>default-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<!-- -->
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profiles>
maven antrun插件
默认配置文件
真的
org.apache.maven.plugins
maven antrun插件
1.8
为了让m2e满意,同时又能满足您的要求,请尝试以下方法:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<echo message="Hello World!"/>
<copy file="src/main/resource/x.xml" todir="src/main" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
关于此类执行的相关阶段
的进一步说明:与编译
相比,准备程序包
阶段将是一个更为(语义正确且易于维护)的选择。有关准备程序包
,请查看:
在实际包装之前,执行准备包装所需的任何操作
更新
看起来,不仅如上所述,准备软件包
阶段将是一个更好的选择,而且在这种情况下,它也是使m2e插件非常满意的正确阶段。请参阅:
- 插件管理
但是,这仅配置在子元素的plugins元素中实际引用的插件
这意味着在
中声明插件只是故事的一半。你也必须在/
部分声明插件,才能真正执行它的目标
就你而言:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven antrun插件
删除
元素,也就是说,将其放入构建/插件
而不是构建/插件管理
部分。@A.DiMatteo我必须添加它,因为否则m2e会识别另一个错误中描述的错误。啊,它太长,无法在注释中描述,我需要写一个答案。。ok@A.DiMatteo期待对它:从上面的DApart你不应该复制(不管怎样)进入src/
是因为它处于版本控制之下。此外,您正在做的是从src/main/resources/
复制,默认情况下,这是由资源复制处理的…因此无需添加maven antrun插件
…吹毛求疵,但我必须准备包
,因为显然这应该被调用来设置-up包装中的正确配置。@Tunaki非常好,我的重点是构建配置,但这绝对值得添加和澄清,我会相应地更新!如果我完全像您一样将其放置在pluginManagement
的正下方,那么我会得到“生命周期配置中未涵盖的插件执行”“错误..@displayname什么不起作用?我刚试过你的代码,得到了HelloWorld!在控制台中。关于Eclipse,该阶段是其默认映射中的问题,更改它以准备包解决了该问题。你能试试吗?@a.DiMatteo这就是问题所在!使用prepare package
对我也很有用。对不起,我没有看到你已经更新了答案!我已经用建议的解决方案更新了我的问题,但仍然是一样的:/到目前为止,您的答案似乎是正确的,但另一个问题是编译阶段。
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>default-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<!-- -->
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profiles>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<echo message="Hello World!"/>
<copy file="src/main/resource/x.xml" todir="src/main" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>