我认为src/main/resources
目录中包含的任何内容都会打包成WAR?
我有以下结构:
src/main/resources/META-INF/...
src/main/resources/config.props
包含META-INF,但config.props
不包含。如何将此添加到WAR?
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>MyWAR</artifactId>
<version>1.2</version>
<packaging>war</packaging>
<!-- Tell Maven what language version to use -->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0</version>
</dependency>
<!-- Enables the annotations, etc needed -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<exclusions>
<exclusion>
<groupId>javax.exterprise</groupId>
<artifactId>cdi-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Our jersey libs -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.25.1</version>
</dependency>
<!-- CDI to JAX-RS Binding -->
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers.glassfish/jersey-gf-cdi-ban-custom-hk2-binding -->
<dependency>
<groupId>org.glassfish.jersey.containers.glassfish</groupId>
<artifactId>jersey-gf-cdi</artifactId>
<version>2.14</version>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.25.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.weld.servlet/weld-servlet-core -->
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet-core</artifactId>
<version>3.0.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.weld/weld-core-impl -->
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core-impl</artifactId>
<version>3.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<version>2.4.2</version>
</dependency>
</dependencies>
<build>
<!-- We don't use the version number in the file name -->
<finalName>MyWAR</finalName>
<plugins>
<!-- Enhances the JPA classes -->
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<version>2.4.2</version>
<executions>
<execution>
<id>JPA Enhance</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
<configuration>
<includes>**/push/*.class</includes>
<excludes>**/com/*.class,**/controller/*.class,**/dao/*.class,**/dto/*.class,**/service/*.class,**/util/*.class</excludes>
<persistenceXmlFile>${project.basedir}/src/main/resources/META-INF/persistence.xml</persistenceXmlFile>
<toolProperties>
<property>
<name>addDefaultConstructor</name>
<value>false</value>
</property>
<property>
<name>enforcePropertyRestrictions</name>
<value>true</value>
</property>
</toolProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
答案 0 :(得分:2)
默认情况下,src/main/resources
文件夹的内容在类路径的根目录中进行复制。对于标准WAR,这将是WEB-INF/classes
文件夹,正如Seelenvirtuose所说。
答案 1 :(得分:2)
WAR文件的根目录不是资源,而是src/main/webapp
。如果您希望文件直接位于WAR文件中的WEB-INF
下,请将它们放在src/main/webapp/WEB-INF
中。 src/main/resources
下的资源最终将在您的WAR文件中/WEB-INF/classes
下。
例如,如果你的来源是这样的:
.
|____ src
| |____ main
| | |____ resources
| | | |____ config.props
| | |____ webapp
| | | |____ WEB-INF
| | | | |_____ web.xml
| | | |____ index.jsp
您的WAR文件如下所示:
.
|____ WEB-INF
| |____ classes
| | |____ config.props
| |____ web.xml
|____ index.jsp
答案 2 :(得分:0)
关于包含/排除的Maven Resources插件文档(此处为https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html)预先确定您的某些资源可能未包含在内。您可以查看文档以确保已标识任何非标准资源(例如,* .props不是标准Java属性文件名)以包含在内。如果默认值不适合您的项目,也可以设置源文件夹和目标文件夹。