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

StackOverflow https://stackoverflow.com/questions/4603730

  •  25-09-2019
  •  | 
  •  

Вопрос

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

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

Однако мое требование более подробно. Пожалуйста, смотрите ниже для структуры каталога:

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

Я знаю, что мы могли бы иметь что-то вроде

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

Но sourceDirectory только для исходного кода Java, если я не ошибаюсь.

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

Это было полезно?

Решение

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

Видимость WEB-INF, Я предполагаю, что вы хотите построить войну. Maven War Plugin Является ли это. Вам нужно будет немного настроить немного, поскольку структура папок нестандартна - например, вам может потребоваться указать местоположение 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. Если вы хотите включить веб-инф в банку, было бы лучшее переместить его в указанный каталог ресурсов. В противном случае вы должны скопировать его по собственным (с плагинами Maven) в целевой каталог - я полагаю.

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

От здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top