使用maven使用非标准目录布局

Gam*_*ogo 9 maven-2 maven-3

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

Maven目录结构

但是,我的要求更详细.请参阅下面的目录结构:

 <root dir>
    |
    +--src-java
    |
    +--src-properties
    |
    +--WEB-INF
Run Code Online (Sandbox Code Playgroud)

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

<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>
Run Code Online (Sandbox Code Playgroud)

sourceDirectory仅限于JAVA源代码,如果我没有弄错的话.

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

Rag*_*ram 21

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

WEB-INF,我想你想要建立一场战争. Maven war插件就是这样做的.您需要稍微配置一下,因为文件夹结构是非标准的 - 例如,您可能需要使用webXmlproperty 指定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>
Run Code Online (Sandbox Code Playgroud)


FrV*_*aBe 8

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

以你的例子为例

<sourceDirectory>src-java</sourceDirectory>
<resources>
  <resource>
    <directory>src-properties</directory>
  </resource>
</resources>
Run Code Online (Sandbox Code Playgroud)

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