Использование maven с использованием нестандартного макета каталога

Я пытаюсь применить maven к существующему проекту, который уже имеет структуру каталогов на месте. Все, что я могу найти из предыдущего вопроса, это следующее.

структура каталогов Maven

однако, мое требование более подробно. Ниже приведена структура каталогов:

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

Я знаю, что у нас может быть что-то вроде

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

но sourceDirectory предназначен только для исходного кода JAVA, если я не ошибочно принимать.

для вышеуказанной структуры, как я объявляю ее в pom.xml? Перемещение каталога - мой последний вариант прямо сейчас.

3 ответов


Я думаю, вам нужно иметь что-то похожее на ниже.

видим WEB-INF, Я полагаю, вы хотите построить войну. в Maven войны плагин это. Вам нужно будет настроить это немного, так как структура папок нестандартна-например, вам может потребоваться указать местоположение web.xml с помощью webXml собственность. Они задокументированы в страница использование.

<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>

вы можете изменить структуру каталогов по умолчанию, объявленное в супер пом переписывая их в вашем pom.

для вашего примера, например,

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

Maven скопирует все ресурсы в файл jar. Если вы хотите включить WEB-INF в jar, лучше всего переместить его в указанный каталог ресурсов. В противном случае вы должны скопировать его самостоятельно (с плагинами maven) в целевой каталог - я полагаю.


 <resources>
  <resource>
    <directory>${project.basedir}/src/main/resources</directory>
  </resource>

С здесь.