简体   繁体   中英

Maven WebApp META-INF context.xml

I am using Maven 3 and I am trying to add META-INF folder under webapp folder. So I am trying to do the following:

src
 main
  webapp
   META-INF
    context.xml
   WEB-INF

Below is my POM file:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.data</groupId>
<artifactId>Java-WebApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>Java-Web Application</name>

<!-- Shared version number properties-->
<properties>
<org.springframework.version>3.0.6.RELEASE</org.springframework.version>
</properties>

<dependencies>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>
 </dependencies>
<build>
<finalName>data</finalName>
</build>

<parent>
<groupId>com.data</groupId>
<artifactId>Java-Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
</project>

Under src/main/resources I have added a META-INF\\context.xml. When the WAR file is packaged using mvn package the structure looks like this:

data
 webapp
  META-INF
  WEB-INF
  index.jsp

The relevant files under WEB-INF can be seen. However, the META-INF folder is blank. My default Maven will add resources under the WEB-INF/classes.

I want specifically would like to have:

data
 webapp
  META-INF
   context.xml
  WEB-INF

How is this possible? I have tried other things, but still it does not work. The context.xml contains the following:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/data1"/>

I have tried removing the META-INF folder from src\\main\\resources and directly put it under webapp\\META-INF. The context.xml displays but when deployed into Tomcat, the context root that I have defined does not work.

Put your META-INF folder within src/main/resources.

Put this on your pom.xml... sorry i missed it before;

<build>
<plugins>
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>


                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                    </manifest>
                </archive>

                <webResources>
                    <resource>
                        <!-- this is relative to the pom.xml directory -->
                        <directory>${project.basedir}/src/main/resources
                        </directory>

                    </resource>
                </webResources>



                <warName>mywar</warName>
            </configuration>
        </plugin>
</plugins>
</build>

the web resources tag is what is important... Hope this helps

Use the tag instead. Above answer using copies everything in src/main/resources to the root of your web application, which is probably not what you want to do nor an example you want to follow.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM