생성 된 소스 폴더에서 Intellij를 사용할 수 없습니다.
소스를 생성하는 사용자 지정 플러그인이 있습니다 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>
작업이 필요할 수 있습니다.
그러나 플러그인이 폴더를 소스 폴더로 추가하면 망가집니다.
폴더를 이동하는 소스 생성 단계에 단계를 추가 할 수 있습니까?
I had the same issue with Eclipse a couple of months ago when importing my project. Now I had the same with intelliJ. Here is how someone helped me to solve this in IntelliJ:
Menu => View => Tools windows => Maven Project In the spring_user value => Run Configuration, choose clean install. This should do a clean install and after this you should be able to see the classes
참고URL : https://stackoverflow.com/questions/5170620/unable-to-use-intellij-with-a-generated-sources-folder
'developer tip' 카테고리의 다른 글
Java에서 파일에 바이트 배열을 어떻게 쓸 수 있습니까? (0) | 2020.11.03 |
---|---|
Python의 목록에있는 모든 숫자에서 값을 빼시겠습니까? (0) | 2020.11.03 |
반환 유형별 오버로딩 (0) | 2020.11.03 |
숭고한 텍스트 또는 다른 텍스트 편집기에서 모든 특수 악센트 문자를 강조 표시하는 방법이 있습니까? (0) | 2020.11.03 |
Google Maps Android API v2-지도에서 터치 감지 (0) | 2020.11.03 |