web-dev-qa-db-ja.com

mavenがコンパイルしてビルドjarに含めるための追加のソースディレクトリを追加するにはどうすればよいですか?

Src/main/Javaに加えて、ビルドプロセスに含めるsrc/bootstrapディレクトリを追加しています。言い換えると、mavenがコンパイルして、ビルドにソースを含めるようにします。どうやって!?

91
chrisapotek

Build Helper Plugin を使用できます。例:

<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>
129
Péter Török
11
Kalpesh Soni

最新のMavenバージョン(3)および最新バージョンのmavenコンパイラプラグイン(3.7.0)では、ビルドに追加するソースコードを含むフォルダーが次の場所にある場合、build-helper-maven-pluginでソースフォルダーを追加する必要はありません。 targetフォルダーまたはそのサブフォルダー。
コンパイラmavenプラグインは、それらが含まれるディレクトリに関係なく、このフォルダ内にあるJavaソースコードをコンパイルするようです。
たとえば、target/aにいくつかの(生成済みまたはなしの)ソースコードがある場合、target/generated-source/fooはコンパイルされ、outputDirectoryに追加されます:target/classes

1
davidxxx

次のようなビルドプロセスのディレクトリを追加できます。

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

Src/main/Javaはデフォルトのパスであり、pom.xmlで言及する必要はありません

0
Arun