看一看maven resource filtering。您可以使用它來用您的實際值覆蓋資源文件中的屬性。
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>
,並在你的POM
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
指定資源篩選,如果您使用此配置文件運行構建,
mvn clean install -P PROD
environment.properties將被處理以
environment.name=PROD
,如果你不使用此配置文件
mvn clean install
將被加工成
environment.name=TEST
現在在運行時,讀取environment.name屬性environment.properties並根據屬性值使用相應的.js文件。
OR
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>
,並設置網絡資源過濾
<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>
,並添加一些這類在JSP
<script type="text/javascript" src="/path/to/app.${js.suffix}js"></script>
(假設未壓縮的一個是app.js和壓縮一個是app.min.js)