현재 Intellij 15.0.6의 Gradle 3.3 프로젝트에서 작업 중입니다.주석 처리기를 사용하여 클래스 패스에 XML 리소스 생성
Gradle APT plugin을 사용하여 내 클래스 경로에 주석 처리기를 추가하고 있습니다.
Java 클래스 파일을 생성 할 때 제대로 작동하지만 빌드 디렉토리의 생성 된 디렉토리에있는 resources
디렉토리에서 XML 소스를 생성 할 수 있어야합니다. 당신이 볼 수 있듯이
, 그것은 내가이 문제를 일으킬 수있는 것으로 판단되는 resources
디렉토리를 포함하지 않습니다
여기에 현재 나의 빌드 디렉토리 구조입니다.
내가 ./gradlew assemble
를 통해 내 주석 프로세서를 실행받는 현재 예외는 다음과 같습니다 java.lang.IllegalArgumentException: Resource creation not supported in location CLASS_PATH
내가 xml 파일 생성 내 주석 프로세서에서 사용하고 코드 :
FileObject source = processingEnv.getFiler() .createResource(StandardLocation.CLASS_PATH, "", "ap-test-2.html");
참고 : HTML 확장을 테스트로 사용했지만 XML은 동일한 결과를 산출해야합니다.
javax.tools.StandardLocation
은 다른 출력 위치를 가지고 :
SOURCE_OUTPUT
위치 src/apt/main
내에서 생성 된 자바 클래스와 같은 패키지 내에서 XML을 배치했다. 그러나 이것은 내 원하는 행동이 아닙니다. 나는 그들을 수업 시간 내에 거주시킬 필요가있다.
광범위한 연구 끝에 다른 곳에서 논의 된이 예외를 발견하지 못했습니다.
도움을 주시면 감사하겠습니다. 이 질문을 읽어 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 흥미롭게도 Intellij는'build' 클래스 경로 파일을'classes'와'resources' 디렉토리로 구분합니다. 내 프로세서는'CLASS_OUTPUT'으로 위치를 변경 한 후에 HTML을'classes' 디렉토리에 추가했습니다. 이것을 더 시험해보고 내가 찾은 것을 당신에게 알려줄 것입니다. –
Intellij는이 두 디렉토리를 병합하여 클래스 패스에 추가하는 것으로 보이므로 위치를 'CLASS_OUTPUT'으로 설정하면 이론적으로 작동합니다. 나는 이것이 사실인지 확인하기 위해 내 프로세서로 작업하는 MVP를 얻으려고 노력할 것이다. –