[java] Maven이 컴파일하고 빌드 jar에 포함 할 추가 소스 디렉토리를 추가하는 방법은 무엇입니까?

src / main / java 외에도 빌드 프로세스에 포함하려는 src / bootstrap 디렉토리를 추가합니다. 즉, maven이 소스를 컴파일하고 빌드에 포함하기를 원합니다. 어떻게!?



답변

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>


답변

참고 :이 솔루션은 Java 소스 파일을 target / classes 디렉토리로 이동하고 소스를 컴파일하지 않습니다.


다음으로 업데이트 pom.xml

<project>
 ....
    <build>
      <resources>
        <resource>
          <directory>src/main/config</directory>
        </resource>
      </resources>
     ...
    </build>
...
</project>


답변

http://maven.apache.org/guides/mini/guide-using-one-source-directory.html

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

또한 참조

여러 src 디렉토리로 Maven 컴파일


답변

최신 Maven 버전 (3) 및 최신 버전의 maven 컴파일러 플러그인 (3.7.0) build-helper-maven-plugin을 사용하면 빌드에 추가 할 소스 코드가 포함 된 폴더가있는 경우 소스 폴더를 target폴더 또는 하위 폴더입니다.
컴파일러 maven 플러그인은이 폴더가 포함 된 디렉토리에 관계 없이이 폴더 안에있는 모든 Java 소스 코드를 컴파일하는 것 같습니다.
예를 들어 일부 (생성 또는 NO)의 소스 코드를 갖는 target/a, target/generated-source/foo컴파일없고 outputDirectory 첨가 될 것이다 target/classes.


답변

다음과 같이 빌드 프로세스에 대한 디렉토리를 추가 할 수 있습니다.

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

src / main / java는 pom.xml에서 언급 할 필요가없는 기본 경로입니다.


답변