소스를 생성하는 사용자 정의 플러그인이 있습니다 target/generated-sources
(여기에 도구 이름 없음). 그래서 target/generated-sources/com/mycompany
… 등과 같은 소스를 얻습니다 .
이 형식은 전혀 변경할 수 없으므로 Intellij를 소스 폴더로 추가하도록 구성 할 수 있습니다. 현재 Intellij가 target/generated-sources/com
소스 폴더로 추가 된 것을 볼 수 있습니다 .
플러그인을 구성 할 수있는 옵션이 없습니다.
업데이트 1 : 생성 된 소스를 도구 이름 폴더 아래에 넣어야한다는 사실에 동의하지 않습니다. 좋은 관습 일지 모르지만 발전기가 하나만 있다면 거기에 둘 필요가 없습니까? 다시 말하지만, 내 pom.xml 에는 소스 폴더로 취급해야 resources
함을 명확하게 나타내는 섹션이 target/generated-sources
있습니다. 이것은 Eclipse에서 완벽하게 작동하므로 Intellij가 내 설정을 존중하지 않는 이유를 알 수 없습니다.
TL; DR-> Intellij 가 클래스 경로 에 추가하는 데 과도하게 많은 target/generated-sources
리소스 섹션을 넣을 때 ?pom.xml
target/generated-sources/com
답변
프로젝트 구조를 변경하여 해당 폴더를 “소스”디렉토리로 추가 할 수 있습니다.
프로젝트 구조 → 모듈 →generated-sources
폴더를 클릭하고 폴더로 만듭니다 sources
.
또는:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>test</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/target/generated-sources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
답변
Maven (SpringBoot 응용 프로그램) 솔루션을 사용하고 있습니다.
- 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭
- Maven 선택
- 소스 생성 및 폴더 업데이트를 선택합니다.
그런 다음 Intellij는 생성 된 소스를 프로젝트로 자동으로 가져옵니다.
답변
gradle을 사용하면 gradle 설정을 새로 고칠 때마다 프로젝트 설정이 지워집니다. 대신 build.gradle에 다음 줄 (또는 유사)을 추가해야합니다. kotlin을 사용하고 있습니다.
sourceSets {
main {
java {
srcDir "${buildDir.absolutePath}/generated/source/kapt/main"
}
}
}
답변
수정
이동 프로젝트 구조 – 모듈 – 소스 폴더 와를 찾을 target/generated-sources/antlr4/com/mycompany
– 클릭 편집 속성을 설정하고 패키지 접두사 로에게 com.mycompany
.
이것이 바로 소스 디렉토리에 패키지 접두사 를 설정할 수있는 이유 입니다.
여기에 다르지만 관련된 문제
답변
그 플러그인을 쓴 사람은 큰 시간을 낭비했습니다. 그것은 그것을하는 방법이 아닙니다!
모든 해결 방법은 거대한 해킹이 될 것입니다. 플러그인 개발자가 자신의 버그를 인식하도록합니다.
죄송합니다. 그게 유일한 방법입니다.
좋아, 플러그인 실행 직후에 antrun 플러그인을 사용하여 디렉토리를 다른 곳으로 이동하십시오.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>process-sources</phase>
<configuration>
<target>
<move todir="${project.build.directory}/generated-sources/toolname/com"
overwrite="true">
<fileset dir="${project.build.directory}/generated-sources/com"/>
</move>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
이 예제에서는 toolname
코드를 생성 한 플러그인을 고유하게 식별 com
하고 생성 된 패키지의 루트를 나타내는 모든 것으로 대체되어야 합니다. 패키지 루트가 여러 개인 경우 여러 <move>
작업이 필요할 수 있습니다.
그러나 플러그인이 폴더를 소스 폴더로 추가하면 망가집니다.