Использование Maven с использованием нестандартного макета каталога - PullRequest
9 голосов
/ 05 января 2011

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

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

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

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

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

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

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

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

Ответы [ 3 ]

21 голосов
/ 05 января 2011

Полагаю, вам нужно что-то похожее на приведенное ниже.

Видя WEB-INF, я полагаю, вы хотите построить войну. Плагин Maven War делает это.Вам нужно будет немного это настроить, поскольку структура папок нестандартная - например, вам может понадобиться указать местоположение 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>
8 голосов
/ 05 января 2011

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

Например,

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

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

1 голос
/ 05 января 2011
 <resources>
  <resource>
    <directory>${project.basedir}/src/main/resources</directory>
  </resource>

С здесь .

...