Jsp 使用Maven配置文件在缩小/未压缩的JS之间切换?
我正在开发一个Java web应用程序,它使用Maven进行构建过程,并且有很多JavaScript 我想做的基本上是在我的JSP文件中包含以下内容:Jsp 使用Maven配置文件在缩小/未压缩的JS之间切换?,jsp,maven,minify,maven-profiles,Jsp,Maven,Minify,Maven Profiles,我正在开发一个Java web应用程序,它使用Maven进行构建过程,并且有很多JavaScript 我想做的基本上是在我的JSP文件中包含以下内容: <c:choose> <c:when test="PRODUCTION"> <script type="text/javascript" src="/path/to/app.min.js"></script> </c:when> <c:oth
<c:choose>
<c:when test="PRODUCTION">
<script type="text/javascript" src="/path/to/app.min.js"></script>
</c:when>
<c:otherwise>
<script type="text/javascript" src="/path/to/script1.js"></script>
<script type="text/javascript" src="/path/to/script2.js"></script>
</c:otherwise
</c:choose>
看一看。您可以使用它以实际值覆盖资源文件中的属性
1) 使用包含环境名称的属性文件。说出包含以下内容的environment.properties
environment.name=${environment.name}
现在在pom文件中使用下面的
<properties>
<environment.name>TEST</environment.name>
</properties>
<profiles>
<profile>
<id>PROD</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<environment.name>PROD</environment.name>
</properties>
</profile>
</profiles>
environment.properties将被处理为
environment.name=PROD
environment.name=TEST
如果您不使用此配置文件
mvn clean install
它将被处理为
environment.name=PROD
environment.name=TEST
现在在运行时,从environment.properties读取environment.name属性,并根据属性值使用相应的.js文件
或
2) 如果您不想读取属性文件,可以过滤jsp本身
<properties>
<js.suffix></js.suffix>
</properties>
<profiles>
<profile>
<id>PROD</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<js.suffix>min.</js.suffix>
</properties>
</profile>
</profiles>
戳
假的
敏。
并设置web资源过滤
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven战争插件
2.5
src/main/webapp
真的
并在jsp中添加此类内容
<script type="text/javascript" src="/path/to/app.${js.suffix}js"></script>
(假设未压缩的是app.js,压缩的是app.min.js)我的解决方案有点不同。我使用minify maven插件,在开发过程中,我使用它创建一个合并的,但不是缩小的app.js,在生产过程中,我使用它创建一个缩小的文件。我将它们都命名为app.js,这样我就不必用Maven更改我的JSP文件
例如:
com.samaxes.maven
缩小maven插件
1.7.2
缩小js
生成源
utf-8
假的
${javascript.skipnify}
真的
${project.basedir}/src/main/webapp
资产/js
*.js
app.js
缩小
然后我使用Maven配置文件切换${javascript.skipMinify}
属性,例如:
发展
真的
真的
生产
假的