maven-war-plugin中有一个archiveClasses
选项,它将所有类打包在一个.jar中,然后在lib /文件夹中创建带有该jar的.war文件。
我需要这样做,但是将资源文件保留在classes目录中,这样它们仍然可以从类路径访问,但很容易修改。
最简单的方法是什么?
答案 0 :(得分:4)
也许您可以尝试将资源文件夹配置为WebResource 插件配置。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<archiveClasses>true</archiveClasses>
<webResources>
<resource>
<directory>src/main/resources</directory>
<targetPath>WEB-INF/classes</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
答案 1 :(得分:2)
一行答案:
maven-war-plugin
中没有提供任何选项来排除使用archiveClasses
标记创建的jar中的资源。
此问题的可能且最简单的解决方法是将src/main/java/resources
目录下的文件移动到src/main/java/webapp/WEB-INF/classes
目录。
答案 2 :(得分:0)
您应该只能指定这些资源的位置。它通常在src / main / resources中查找资源,但是如果你在java源代码树中需要它们,你可以尝试:
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>*.xml</include>
</includes>
</resource>
</resources>
答案 3 :(得分:0)
你可以这样做来解决问题:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>${project.war.name}</warName>
<warSourceExcludes>**/*.class</warSourceExcludes>
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>