0

我正在使用 Eclipse 来管理一个 Maven 项目。

在这个项目的 pom 中,我有一个特殊的插件,它在 generate-ressources 阶段创建一个文件:

<plugin>
    <groupId>org.eclipse.acceleo</groupId>
    <artifactId>maven</artifactId>
    <version>3.2.1</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>acceleo-compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我已将此插件目标链接到 eclipse 生命周期以在 eclipse 编译期间执行它:

<plugin>
    <groupId>org.eclipse.m2e</groupId>
    <artifactId>lifecycle-mapping</artifactId>
    <version>1.0.0</version>
    <configuration>
        <lifecycleMappingMetadata>
            <pluginExecutions>
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>org.eclipse.acceleo</groupId>
                        <artifactId>maven</artifactId>
                        <versionRange>[3.2.1,)</versionRange>
                        <goals>
                            <goal>acceleo-compile</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action>
                        <execute />
                    </action>
                </pluginExecution>
            </pluginExecutions>
        </lifecycleMappingMetadata>
    </configuration>
</plugin>

当我用eclipse做一个干净的项目时,项目再次编译,并且在eclipse编译过程中生成了文件(我可以在目标目录中找到它)。

现在,我想在 tomcat 服务器上部署我的 webapp。我使用 eclipse 的服务器视图创建了一个 tomcat 服务器,并将项目拖放到该服务器中以同步和发布它。

该项目部署良好,我可以启动服务器并测试我的应用程序。

但是,需要由maven插件生成的文件在发布操作期间没有被复制......

所以我的问题是:为什么一个maven插件生成的文件在eclipse编译时生成的很好,但在eclipse自动服务器管理的发布/同步操作期间没有部署在服务器上?

4

2 回答 2

0

答案在您的问题中,因为您将插件配置为仅在 eclipse 生命周期期间运行,但是您错过了将执行添加到构建生命周期中。

于 2013-03-21T09:06:59.663 回答
0

据我所知,您的 webapp 的发布是由 eclipse wtp工具完成的。

要配置它(部署到服务器的内容),请查看这个问题和相应的答案。

简而言之:我认为您需要配置生成的文件(从您的目标目录)在 wtp 部署您的应用程序时也被复制。

于 2013-03-21T09:09:38.763 回答