dok*_*par 40 parameters web.xml servlets maven
我有一个Maven项目,它将一些测试文件下载到它的构建目录中./target/files.然后,这些文件应该可用于servlet,我可以通过将完整路径硬编码为servlet来轻松实现<init-param>:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>my.package.TestServlet</servlet-class>
<init-param>
<param-name>filepath</param-name>
<param-value>/home/user/testproject/target/files</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
如何避免硬编码完整路径并使用动态参数替换?我尝试了以下,但它不起作用:
<param-value>${project.build.directory}/files</param-value>
Run Code Online (Sandbox Code Playgroud)
And*_*wik 79
添加到您的pom部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Maven:自定义web-app项目的web.xml
您可以简单地使用maven 过滤资源:
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
Run Code Online (Sandbox Code Playgroud)
您也可以将此组合并希望过滤某些文件,而不应过滤其他文件:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
</resource>
...
</resources>
Run Code Online (Sandbox Code Playgroud)
将适当的占位符放入您想要替换$ {home}之类的文件中.
| 归档时间: |
|
| 查看次数: |
51182 次 |
| 最近记录: |