使用Jetty中的Maven隐藏文件过滤JavaScript文件

时间:2011-12-13 13:58:33

标签: javascript maven-2 jetty

我对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”不可见。

如何解决此问题?

1 个答案:

答案 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>