Как добавить дополнительный исходный каталог для maven для компиляции и включения в сборочный jar? - PullRequest
88 голосов
/ 17 марта 2012

В дополнение к src / main / java, я добавляю каталог src / bootstrap, который я хочу включить в мой процесс сборки, другими словами, я хочу, чтобы maven скомпилировал и включил исходные коды в мою сборку. Как!?

Ответы [ 5 ]

128 голосов
/ 17 марта 2012

Вы можете использовать плагин Build Helper , например:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
34 голосов
/ 14 ноября 2013
ПРИМЕЧАНИЕ. Это решение просто переместит исходные файлы java в каталог target / classes и не скомпилирует исходники.

Обновить pom.xml как -

<project>   
 ....
    <build>
      <resources>
        <resource>
          <directory>src/main/config</directory>
        </resource>
      </resources>
     ...
    </build>
...
</project>
11 голосов
/ 13 марта 2015
1 голос
/ 27 августа 2018

В последних версиях Maven (3) и последней версии подключаемого модуля компилятора maven (3.7.0) я заметил, что добавление исходной папки с build-helper-maven-plugin не требуется, если папка, содержащая исходный код, добавляется всборка находится в папке target или ее подпапке.
Кажется, что плагин компилятора maven компилирует любой исходный код Java, расположенный внутри этой папки, независимо от того, в каком каталоге он находится.
Например, имея некоторые (сгенерировано или нет) исходный код в target/a, target/generated-source/foo будет скомпилирован и добавлен в outputDirectory: target/classes.

0 голосов
/ 15 сентября 2013

Вы можете добавить каталоги для вашего процесса сборки, например:

    ...
   <resources>
     <resource>
       <directory>src/bootstrap</directory>
     </resource>
   </resources>
   ...

src / main / java - это путь по умолчанию, который не требуется упоминать в pom.xml

...