9

我正在尝试将 maven 应用于已经具有目录结构的现有项目。我可以从上一个问题中找到以下内容。

Maven目录结构

但是,我的要求更详细。目录结构见下图:

 <root dir>
    |
    +--src-java
    |
    +--src-properties
    |
    +--WEB-INF

我知道我们可以有类似的东西

<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>

sourceDirectory如果我没记错的话,仅适用于 JAVA 源代码。

对于上述结构,我如何声明它pom.xml?移动目录是我现在的最后一个选择。

4

3 回答 3

21

我想你需要有类似下面的东西。

看到WEB-INF了,我假设你想发动一场战争。 Maven 战争插件可以做到这一点。由于文件夹结构是非标准的,因此您需要对其进行一些配置 - 例如,您可能需要使用webXml属性指定 web.xml 的位置。这些都记录在使用页面中。

<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>
于 2011-01-05T12:36:52.817 回答
8

您可以通过在 pom.xml 中覆盖它们来更改Super POM中声明的默认目录结构。

对于您的示例,例如

<sourceDirectory>src-java</sourceDirectory>
<resources>
  <resource>
    <directory>src-properties</directory>
  </resource>
</resources>

Maven 会将所有资源复制到 jar 文件中。如果要将 WEB-INF 包含到 jar 中,最好将其移动到指定的资源目录中。否则,您必须自己(使用 Maven 插件)将其复制到目标目录 - 我想。

于 2011-01-05T12:26:54.283 回答
1
 <resources>
  <resource>
    <directory>${project.basedir}/src/main/resources</directory>
  </resource>

这里

于 2011-01-05T12:18:47.917 回答