我对Maven2.2.1和JavaScript有一些奇怪的问题。当我尝试根据我正在运行的不同配置文件过滤一个JavaScript文件时出现问题。我的Maven代码就在附近:
...
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>settings-file.js</include>
</includes>
<targetPath>
${build.directory}/${build.finalName}/www/wc/js
</targetPath>
</resource>
...
<profiles>
<profile>
<id>final</id>
<properties>
...
<web.setting.baseUrl>http://www.base.com</web.setting.baseUrl>
...
</profile>
</profiles>
...
我希望过滤文件“settings-file.js”,并在调用时更改所有出现的内容,例如$ {web.setting.baseUrl}
mvn clean install -Pfinal
但是当文件“settings-file.js”放在&lt; targetDir&gt;中时它不会发生,所以我把它移到src / main / resources,希望它覆盖现有文件 - 但它仍然没有发生了。我解决了它从原始位置删除文件并将其放在资源文件夹和编辑maven pom.xml文件(如清单中所示)。
现在我有了新的尴尬问题。当我用
启动我的网络应用程序时mvn jetty:run
并导航到正在使用“settings-file.js”的页面,因为它没有看到此文件。它现在被放置在它应该被正确过滤的位置,但是由于某种原因在码头上看不到。其他* .js文件在那里。如果我在浏览器中输入他们的网址,我可以看到他们,但只有“settings-file.js”不可见。
如何解决此问题?
答案 0 :(得分:1)
在maven Web应用程序中,javascript文件通常位于src/main/webapp
下,要过滤这些文件,您必须配置war插件的webResources
配置。默认目标是war文件的根目录。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>settings-file.js</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>