我将当前的Java EE项目移植到maven。我正在研究由maven创建的战争的文件夹结构,不知何故卡住了。
Maven将我的所有文件复制到webapps中,包括我的WEB-INF / classes文件夹中的.css,.js等。我为它们保留了不同的文件夹资源,并且只需要将.class和.properties文件复制到classes文件夹中。
任何想法我怎样才能做到这一点?
- 添加更多数据 -
使用
<webResources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<targetPath>resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</webResources>
在我的战争中创建一个资源文件夹并将所有这些文件保存在资源文件夹中,但不知何故,它们的副本也在WEB-INF / classes中创建
答案 0 :(得分:3)
您可以配置maven-war-plugin
以从包装中排除某些文件。检查documentation。
但是,通常将Web资源保留在应用程序的src/main/resources
目录中的类路径之外(因此不在webapp
中)。
资源被复制到classes
目录中,因为src/main/resources
的目的地是接收您希望在类路径上可用的文件(properties
文件,xml配置文件等。 )。
答案 1 :(得分:3)
正如@benzonico所提到的,您应该将webapp
资源保留在src/main/webapp
而不是src/main/resources
。如果您无法更改,可以添加类似于以下内容的内容,以排除js
和css
文件被复制到类文件夹。
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>*.css</exclude>
<exclude>*.js</exclude>
</excludes>
</resource>
...
</resources>
...
</build>