我正在使用 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>
有人知道吗?