我将wro4j用于js和css聚合。因此,我使用我的js文件,在 maven 构建时,wro4j执行并创建我需要的唯一js文件。
有一个js文件具有基于pom.xml中的配置文件的几个变量(与环境相关,例如用于查找内容的 url)。
当我构建应用程序时,我可以在war文件中看到js文件中的替换变量。但是,当wro4j的插件生成聚合的js文件时,从webapps/js而不是从目标文件夹(这是正确的)获取文件,因此,聚合的js文件具有表达式变量而不是替换的变量。
我想将过滤执行推迟到wro4j插件之后运行。有可能的?
这些是js文件(称为global.js)上的变量:
var mvnProfileEnvName = "${environment.name}";
var mvnProfileFullSearchUrl = "${full.search.url}";
我在pom.xml中有以下代码
<profiles>
<profile>
<id>dev</id>
<properties>
<environment.name>dev</environment.name>
<full.search.url>url/for/dev</full.search.url>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<environment.name>test</environment.name>
<full.search.url>url/for/test<full.search.url>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<environment.name>prod</environment.name>
<full.search.url>url/for/prod</full.search.url>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/webapp/js</directory>
<filtering>true</filtering>
<includes>
<include>global.js</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/webapp/wro</directory>
<filtering>true</filtering>
</resource>
</resources>
</plugins>
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>${wro4j.version}</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<minimize>true</minimize>
<jsDestinationFolder>${basedir}/src/main/webapp/wro/js/</jsDestinationFolder>
<cssDestinationFolder>${basedir}/src/main/webapp/wro/css/</cssDestinationFolder>
</configuration>
</plugin>
</plugins>
<build>