Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Maven从Jetty隐藏文件过滤JavaScript文件_Javascript_Maven 2_Jetty - Fatal编程技术网

使用Maven从Jetty隐藏文件过滤JavaScript文件

使用Maven从Jetty隐藏文件过滤JavaScript文件,javascript,maven-2,jetty,Javascript,Maven 2,Jetty,我对Maven2.2.1和JavaScript有一个奇怪的问题。当我试图根据正在运行的不同配置文件过滤一个JavaScript文件时,出现了这个问题。我的Maven代码如下: ... <resource> <filtering>true</filtering> <directory>${basedir}/src/main/resources</direct

我对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”放入时,它不会发生,所以我将其移动到src/main/resources,希望它覆盖现有的文件,但它仍然不会发生。我通过从原始位置删除文件并将其放在resources文件夹中并编辑maven pom.xml文件(如清单所示)解决了这个问题

现在我有了新的棘手问题。当我用启动web应用程序时

mvn jetty:run 
并导航到使用“settings file.js”的页面,因为它没有看到该文件,所以会停止。现在,它被放置在应该被过滤的地方,但由于某种原因,码头不可见。还有其他*.js文件。如果我在浏览器中键入它们的url,我可以看到它们,但只有“settings file.js”不可见


我如何解决这个问题

在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>

org.apache.maven.plugins
maven战争插件
2.1
真的
src/main/webapp
settings-file.js

听起来您在处理两个不同的问题。首先,您不确定如何让maven过滤按您希望的方式工作。第二个问题是jetty没有按照您期望的方式提供javascript文件。不确定过滤的情况。第二个问题可能与权限有关。我只是认为它可以与mvn jetty:run war和mvn jetty:run explode一起使用,但不能与mvn jetty:run一起使用,就好像最后一个问题只将原始代码放入jetty容器一样。现在的问题是如何使jetty:run目标使用过滤后的资源?不,这并不能使mvn jetty:run正确工作。但是,该文件现在对上下文可见,但未被过滤。嘿,它有所帮助,但并不完全有效。请参阅我的下一篇文章以获得解释。
<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>