Использование 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>
От здесь.