Eclipse Maven WTP插件在切换配置文件时不刷新资源

时间:2013-01-14 10:39:42

标签: eclipse maven eclipse-wtp maven-eclipse-plugin

我正在使用Eclipse Juno和Maven-WTP插件开发Web应用程序。这个应用程序有一个标题图像,我也有两个Maven配置文件。这些配置文件允许更改标题图像,因为它们指向图像所在的不同目录。这就是他们的配置方式:

<profile>
    <id>local</id>
    <properties>
        <imagen.cabecera.dir>src/main/resources/styles/headers/example1</imagen.cabecera.dir>
    </properties>
</profile>

<profile>
    <id>local2</id>
    <properties>
        <imagen.cabecera.dir>src/main/resources/styles/headers/example2</imagen.cabecera.dir>
    </properties>
</profile>

我的想法是当我更改 .m2 / settings.xml 中的活动配置文件时,也会更改头文件。活动配置文件的配置如下:

<activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
    <activeProfile>local</activeProfile>
</activeProfiles>

如果我更改活动配置文件并执行mvn clean install,那么一切都像项目目标目录中的魅力一样。但是,问题来自Maven-WTP插件。这个插件从webapp/images目录获取文件,看起来当我更改活动配置文件时没有获得新配置文件。 WTP插件似乎没有在这里更新文件,因此我在浏览器中显示旧文件,即使我做了clean install。这是我的 pom.xml 配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>process-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}</outputDirectory>
                <resources>
                    <resource>
                        <directory>${imagen.cabecera.dir}</directory>
                        <includes>
                            <include>cabecera.jpg</include>
                        </includes>
                        <targetPath>${project.build.directory}/header</targetPath>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <executions>
        <execution>
            <id>default-war</id>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${project.build.directory}/header</directory>
                        <includes>
                            <include>cabecera.jpg</include>
                        </includes>
                        <targetPath>/images</targetPath>
                    </resource>
                </webResources>
            </configuration>
        </execution>
    </executions>
</plugin>

有人知道吗?

2 个答案:

答案 0 :(得分:0)

您可能需要通过以下方式更新Maven项目配置:

  

右键点击您的项目 - &gt; Maven - &gt;更新项目

enter image description here

答案 1 :(得分:0)

Maven Eclipse WTP插件正在从 webapp 目录中获取要部署的数据。线索是执行mvn clean install时没有清理此目录,因为Maven只清理目标目录。诀窍是forcing Maven to clean我将要更新的资源。

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>src/main/webapp/images</directory>
                <includes>
                    <include>cabecera.jpg</include>
                </includes>
            </fileset>
        </filesets>
    </configuration>
</plugin>