Eclipse 打包前在Maven中执行任务
在打包之前,我不知道如何在Maven中运行任务Eclipse 打包前在Maven中执行任务,eclipse,maven,maven-3,Eclipse,Maven,Maven 3,在打包之前,我不知道如何在Maven中运行任务 <build> <plugins> [...] <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <ve
<build>
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<echo message="****** TEST *****" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
为了修复Eclipse错误,我在构建部分配置了lifecyleMappingMetadata:
<build>
...
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.7,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
...
org.eclipse.m2e
生命周期映射
1.0.0
org.apache.maven.plugins
maven antrun插件
[1.7,)
跑
尝试添加执行id:
<execution>
<phase>generate-sources</phase>
<id>my-generate-sources</id>
<configuration>
<tasks>
<echo message="****** TEST *****" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
您可以在Eclipse控制台窗口中看到输出
外部工具也可以从Run菜单访问。我想有一种方法可以通过Eclipse UI实现这一点,但我使用Eclipse的时间不够长。您需要添加
标记(如果插件只有一个
,则强烈建议添加
标签,但不是必需的),例如:
。。。
打印一些东西
生成源
跑
...
with goalrun
Eclipse告诉我:“插件执行不在生命周期配置中:org.apache.maven.plugins:maven-antrun插件:1.7:run(执行:我的生成源代码,阶段:生成源代码)”,但从命令行它可以工作…嗯。。progress@stivlo这是因为Eclipse需要一些额外的元数据sop,它知道任何“疯狂的”正在发生的事情,可以根据需要决定重新运行插件。您可以忽略这一点,也可以研究将所需的生命周期信息添加到插件中pom@StephenConnolly,谢谢,我试过了,但还是没有什么乐趣,请看问题updateSuccess,配置不在正确的位置,我现在在build-pluginManagement中添加了-插件和它的工作,谢谢你,只有id
,它仍然没有得到执行goal
run
,正如Guillaume works建议的那样,但是Eclipse抱怨(参见其他评论)。我已设法使m2e正常工作,请参阅我的问题更新。感谢您的帮助。我不认为执行是个问题。您的项目使用什么样的打包类型?如果它是pom
,这将不起作用。也许您可以粘贴整个pom.xml…?war
。请尝试将
设置为初始化>或者流程资源
生成源代码
,初始化
和流程资源
阶段都从命令行开始工作,我的下一个问题是关于m2e
插件,现在已经解决了。
<execution>
<phase>generate-sources</phase>
<id>my-generate-sources</id>
<configuration>
<tasks>
<echo message="****** TEST *****" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${resource}"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/usr/bin/mvn"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="clean package -DskipTests=true -U"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${selected_resource_loc}"/>
</launchConfiguration>
mvn clean package -DskipTests=true -U
...
<execution>
<id>print-something</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo message="****** TEST *****" />
</tasks>
</configuration>
</execution>
...