我正在尝试将maven应用于已经具有目录结构的现有项目。我从以前的问题中找到的所有内容如下:
但是,我的要求更详细。请参阅下面的目录结构:
<root dir>
|
+--src-java
|
+--src-properties
|
+--WEB-INF
我知道我们可以有像
这样的东西<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>
但sourceDirectory
仅适用于JAVA源代码,如果我没有记错的话。
对于上述结构,我如何在pom.xml
中声明它?移动目录是我现在的最后一个选择。
答案 0 :(得分:21)
我想你需要有类似下面的东西。
看到WEB-INF
,我想你想要建立一场战争。 Maven war plugin这样做。您需要对此进行一些配置,因为文件夹结构是非标准的 - 例如,您可能需要使用webXml
属性指定web.xml的位置。这些内容记录在usage page。
<build>
<sourceDirectory>src-java</sourceDirectory>
...
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>WEB-INF</warSourceDirectory>
...
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:8)
您可以通过在pom中覆盖它们来更改Super POM中声明的默认目录结构。
例如,
<sourceDirectory>src-java</sourceDirectory>
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
Maven会将所有资源复制到jar文件中。如果要将jar-INF包含在jar中,最好将其移动到指定的资源目录中。否则你必须自己(用maven插件)将它复制到目标目录 - 我想。
答案 2 :(得分:1)
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
来自here。