从Eclipse WTP发布到服务器时,如何排除Maven资源?

时间:2014-11-10 22:18:11

标签: eclipse maven eclipse-wtp

在部署或发布到服务器时,如何让WTP在src / main / resources文件夹中排除Maven资源?例如,我创建了一些名为src / main / resources / qa和src / main / resources / prod的文件夹,在那里我有属性文件。我想将它们用于部署,但我不希望它们出现在WAR文件中。

通过向我的pom.xml添加资源节,我可以从Maven构建中排除这些文件夹(例如,当我运行mvn package时),并且它们不会出现在我的WAR文件工件中。< / p>

但是,当我使用&#34; Debug As ..&#34;使用WTP让Eclipse管理并连接到我的本地Tomcat服务器,我可以看到WTP正在发布所有资源,包括我在本地Tomcat服务器中的排除文件夹。我已经看过wtpwebapp文件夹,即WTP正在使用的部署目标,当我从Eclipse服务器定义中删除了我的WAR工件时,它就消失了。然后,当我将项目添加回服务器时,排除的资源会找回。

我已尝试使用&#34; ** / qa /&#34;明确排除文件夹。和&#34; ** / prod /&#34;我的项目的Java Build路径中的条目在相应的源库上,事实上,使用mvn eclipse:clean eclipse:eclipse -Dwtpversion=2.0重新创建Eclipse项目将自动为我添加构建路径排除项。当WTP发布时,他们似乎并没有被尊重。

1 个答案:

答案 0 :(得分:0)

@格雷格,

要考虑的一个选择是让Maven而不是Eclipse WTP将WAR推送到服务器。

这可能需要权衡取决于Eclipse在幕后为您做的事情。

然后,您的桌面将更准确地反映您的CI构建中发生的事情。

无论如何,this guide详细解释了如何配置tomcat7:deploy目标。

以下是建议的pom.xml代码段,可帮助您入门:

<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <executions>
            <execution>
                <phase>deploy</phase>
                <goals>
                    <goal>redeploy</goal>
                </goals>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <server>TomcatServer</server>
                    <path>/mkyongWebApp</path>
                </configuration>
            </execution>
        </execution>
    </plugin>
  </plugins>