【发布时间】:2015-07-22 18:03:57
【问题描述】:
我在使用 Maven 的资源过滤时遇到了一些问题。目录结构为:
src
|-main
|-filters
|-java
|-resources
|-webapp
POM 包含以下内容:
<build>
<filters>
<filter>src/main/filters/${environment}/filter.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
...
</build>
我正在使用带有“保存时复制静态资源”的 NetBeans,但它只会在 filtering 设置为 false 时复制资源。这迫使我每次更改 resources 文件夹中的文件时都进行构建,而不仅仅是保存更改的文件。
运行mvn resources:resources 给出以下输出:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building core 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-cli) @ core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 77 resources
[INFO] Copying 31 resources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.618 s
[INFO] Finished at: 2015-07-22T21:24:32+01:00
[INFO] Final Memory: 9M/155M
[INFO] ------------------------------------------------------------------------
但是当我查看目标文件夹时,修改后的struts.xml 文件没有更新。我以前从未使用过mvn resources:resources,所以也许我对此有错误的想法。它不应该将文件从src/main/resources复制到target/[FOLDER]/WEB-INF/classes吗?
有人有解决办法吗?
【问题讨论】:
-
您的目录结构是“src/filters”,但您将其称为“src/main/filters”。哪里出错了?
-
很好看。错误在我的描述中,我已经更新了问题。
-
“
mvn resources:resources不起作用”是什么意思?是不会将src/main/resources的资源复制到目标目录还是过滤不起作用? -
我更新了问题。
mvn resources:resources似乎什么也没做。我从target文件夹中删除了我的struts.xml并重新运行,但struts.xml没有被复制到target。