단일 maven 프로젝트에서 여러 Java 소스 디렉토리를 컴파일하는 방법이 있습니까?
답변
build-helper를 사용하여 새 소스 디렉토리를 추가 할 수 있습니다.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
답변
나는 순진하게 이렇게합니다 :
<build>
<finalName>osmwse</finalName>
<sourceDirectory>src/main/java, src/interfaces, src/services</sourceDirectory>
</build>
답변
이것은 나를 위해 일했다
<build>
<sourceDirectory>.</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/main2/java/**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
답변
intelliJ에서 작동하도록 추가 할 수도 있습니다.
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
maven-compiler-plugin에
답변
또한 resources 태그를 정의하여 maven과 함께 작동합니다. 원하는대로 src 폴더 이름을 지정할 수 있습니다.
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/generated</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
답변
이것은 maven 3.5.4에서 작동했으며 이제 Intellij Idea는이 코드를 소스로 봅니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
</configuration>
</plugin>
답변
포스트에서 build-helper-maven-plugin을 사용하고 src / main / generated를 업데이트하십시오. 그리고 mvn clean compile은 내 ../common/src/main/java 또는 ../common에서 작동하므로 후자를 유지하십시오. 그런 다음 David Phillips가 언급했듯이 IntelliJ IDEA (버전 10.5.2) 수준의 컴파일이 실패했음을 확인합니다. 문제는 IDEA가 프로젝트에 다른 소스 루트를 추가하지 않았다는 것입니다. 수동으로 추가하면 문제가 해결되었습니다. 프로젝트에서 아무것도 편집하는 것은 IDEA의 프로젝트 옵션을 직접 편집하는 것이 아니라 maven에서 가져 오는 것이 좋지 않습니다. 그러나 소스를 자동으로 추가하도록 build-helper-maven-plugin을 직접 지원할 때까지 계속 사용할 수 있습니다.
그런 다음이 작업을 수행하기 위해 다른 해결 방법이 필요했습니다. pom 변경 후 IDEA가 maven 설정을 다시 가져올 때마다 새로 추가 된 소스가 모듈에 유지되었지만 소스 폴더 선택 항목이 손실되고 쓸모가 없었습니다. 따라서 IDEA의 경우 다음을 한 번 설정해야합니다.
- -프로젝트 설정 / Maven / 가져 오기 / 소스 및 테스트 폴더를 다시 가져올 때 선택하십시오.
- 추가-프로젝트 구조 / 프로젝트 설정 / 모듈 / {모듈} / 소스 / 컨텐츠 루트 추가.
이제 해당 폴더를 가져 오기 상태로 유지하는 것이 세상에서 가장 좋은 방법은 아니지만 시도해보십시오.