我目前正在使用Intellij 15.0.6中的Gradle 3.3項目。使用註釋處理器將XML資源生成到Classpath中
我正在使用Gradle APT plugin向我的類路徑添加註釋處理器。
它在生成Java類文件時工作正常,但是我需要能夠在生成目錄生成的目錄中相當於resources
目錄中生成XML源。
這是目前我的build目錄結構:
正如你所看到的,它不包括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
位置工作以將相同的封裝中生成的Java類中的XML,內src/apt/main
。但這不是我想要的行爲。我需要它們駐留在類路徑中。
在廣泛的研究之後,我還沒有在其他任何地方發現過這個例外。
任何幫助表示讚賞。感謝您閱讀這個問題。
感謝您的回覆。有趣的是,Intellij將'build'類路徑文件分爲兩個目錄:'classes'和'resources'。在將位置更改爲「CLASS_OUTPUT」後,我的處理器將HTML添加到'classes'目錄。我會進一步測試,讓你知道我找到了什麼。 –
看來Intellij將這兩個目錄合併在一起並將它們添加到類路徑中,因此將該位置設置爲'CLASS_OUTPUT'應該在理論上工作。我會嘗試讓我的處理器與MVP一起工作,以驗證是否屬於這種情況。 –