2013-07-23 5 views
3

допустим у меня есть стандартный Maven проект со стандартными четырьмя каталогамиДобавление папок в Maven проекта

src/main/java 
src/main/resources 
src/test/java 
src/test/resources 

Теперь давайте предположим, я создаю подкаталог «Clojure» под «SRC/главный». Являются ли исходные файлы в разделе «src/main/clojure» автоматически скомпилированы при запуске сборки или мне как-то нужно сообщать maven через конфигурацию некоторого плагина (например, build-helper-maven-plugin), что он также должен скомпилировать источники в разделе «src/main/clojure»?

Другими словами, создание любой папки, которая не является «.../java» или «.../resources», требует явной конфигурации в файле pom.xml, чтобы учитывались источники by maven ??

Любая помощь будет оценена по достоинству.

С уважением, Горация

ответ

1

Проект Maven обычно строится с помощью одного компилятора, который ищет все исходные файлы в тех папках, которые известны как исходные папки для Maven. В зависимости от проекта такие исходные папки могут быть добавлены автоматически, например. SRC/Основной/Java. Если используется другой компилятор, дополнительные папки могут автоматически добавляться, например. SRC/Основной/заводной.

Иногда интеграция Maven в IDE (например, Eclipse или IntelliJ) не собирает папки для проектов, отличных от Java, хотя правильные плагины Maven находятся в POM, например, например. для строительства проекта Groovy.

Таким образом, хотя сборка в командной строке может хорошо работать с файлами в src/main/groovy, папка не может быть обнаружена в качестве исходной папки при импорте проекта в среде IDE. В таких случаях вам может потребоваться добавить дополнительные исходные папки, например.

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
     <execution> 
     <id>add-source</id> 
     <phase>generate-sources</phase> 
     <goals> 
      <goal>add-source</goal> 
     </goals> 
     <configuration> 
      <sources> 
      <source>src/main/groovy</source> 
      </sources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
0

Да, специалист должен «знать», что эти каталоги означают, хотя Clojure сборки плагин может использовать этот каталог по соглашению - смотри, например: https://github.com/talios/clojure-maven-plugin

0

Apache Maven имеет Standard Directory Layout который понимает из коробки.

Чтобы сделать maven любой другой структурой, чем указано выше, вам придется переопределить эти настройки в pom.xml.

Посмотрите на это section ссылки POM.

Смежные вопросы