I have a Maven project that downloads some test files into its build directory ./target/files
. These files should then be available to a servlet, which I can easily achieve by hardcoding the full path as an <init-param>
of the servlet:
<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>
How can I avoid hardcoding the full path and use a dynamic parameter replacement instead? I tried the following, but it did not work:
<param-value>${project.build.directory}/files</param-value>
User-defined properties can be referenced in a POM, or they can be used to filter resources via the Maven Resource plugin.
Maven properties are value placeholders, like properties in Ant. Their values are accessible anywhere within a POM by using the notation ${X}, where X is the property. Or they can be used by plugins as default values, for example: In your case you have defined properties as version of java.
Configuring and Mapping a Servlet This is done using the <servlet> element. Here you give the servlet a name, and writes the class name of the servlet. Second, you map the servlet to a URL or URL pattern. This is done in the <servlet-mapping> element.
The <servlet> element declares the servlet, including a name used to refer to the servlet by other elements in the file, the class to use for the servlet, and initialization parameters. You can declare multiple servlets using the same class with different initialization parameters.
Add to your pom section:
<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>
See Maven: Customize web.xml of web-app project for more details
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With