Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 打包前在Maven中执行任务_Eclipse_Maven_Maven 3 - Fatal编程技术网

Eclipse 打包前在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

在打包之前,我不知道如何在Maven中运行任务

<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 goal
run
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>
      ...