当前位置 : 主页 > 编程语言 > java >

jsp – 使用Maven配置文件在缩小/未压缩的JS之间切换?

来源:互联网 收集:自由互联 发布时间:2021-06-25
我正在开发一个 Java Web应用程序,它使用Maven来构建它,并且有很多 JavaScript. 我想要做的是基本上在我的JSP文件中有这个: c:choose c:when test="PRODUCTION" script type="text/javascript" src="/path/to/app
我正在开发一个 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: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>

这可能与Maven配置文件有关吗?

看看 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.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>

并在你的jsp中添加这种东西

<script type="text/javascript" src="/path/to/app.${js.suffix}js"></script>

(假设未压缩的是app.js,压缩的是app.min.js)

网友评论