0

我正在使用 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>

有人知道吗?

4

2 回答 2

0

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

右键单击您的项目 -> Maven -> 更新项目

在此处输入图像描述

于 2013-01-14T12:11:34.663 回答
0

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

<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>
于 2013-01-14T12:34:13.457 回答