为什么以及如何避免 Maven 替换 ${id} in jsp on mvn package
Why and how to avoid Maven to replace ${id} in jsp on mvn package
当我 "mvn package" 我的 webapp 时,jsp 中所有出现的 ${id} 都被
替换
com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT
Maven 版本 3.0.5
pom.xml:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
初始Jsp:
<c:url var="myUrl" value="/view/${id}"/>
Jsp 在 war 之后 "mvn package":
<c:url var="myUrl" value="/view/com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT
"/>
我怎样才能避免这种情况?
您可以使用排除指令:
<resource>
<directory>src/my-dir</directory>
<excludes>
<exclude>**/*.jsp</exclude>
</excludes>
</resource>
<filtering>true</filtering>
<includes>
<include>**/directoryNameWithKeysToReplace/*</include>
</includes>
现有答案是正确的,但我遗漏了一件重要的事情 - <filtering>false</filtering>
并不意味着不遵守 <include>
和 <exclude>
规则 - 这是一个不同的功能"only" 处理每个文件并进行替换。
当我 "mvn package" 我的 webapp 时,jsp 中所有出现的 ${id} 都被
替换com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT
Maven 版本 3.0.5
pom.xml:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
初始Jsp:
<c:url var="myUrl" value="/view/${id}"/>
Jsp 在 war 之后 "mvn package":
<c:url var="myUrl" value="/view/com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT
"/>
我怎样才能避免这种情况?
您可以使用排除指令:
<resource>
<directory>src/my-dir</directory>
<excludes>
<exclude>**/*.jsp</exclude>
</excludes>
</resource>
<filtering>true</filtering>
<includes>
<include>**/directoryNameWithKeysToReplace/*</include>
</includes>
现有答案是正确的,但我遗漏了一件重要的事情 - <filtering>false</filtering>
并不意味着不遵守 <include>
和 <exclude>
规则 - 这是一个不同的功能"only" 处理每个文件并进行替换。