我正忙於爲自定義註釋處理器編寫集成測試。爲了做到這一點,我有一組特定的.java源文件,我通過javac運行,以測試我的實現。這些作爲資源被我的測試加載。這意味着,我的源代碼樹看起來像下面這樣:IntelliJ IDEA - 如何將.java文件複製爲資源?
/src
/test [test source root]
/java
MyIntegrationTest.java [actual source code]
/resources
MyIntegrationClassFile.java [should be treated as plain text]
用的IntelliJ,它可以過濾複製與使用編譯器設置的資源是什麼文件。所以我刪除了.java文件的過濾器。
但是,對於要複製的資源,它們需要位於標記的源代碼樹中。我也有我的資源文件夾標記爲測試來源(是的,這很奇怪)。
問題出在這裏:如果.java文件在源代碼樹中(爲了作爲資源複製),它們會自動編譯。我不想編譯這些文件(它們可能不會編譯)。
我已經嘗試將資源添加到編譯器排除列表(不從項目中排除它),但這也會導致資源不被複制。
就我所知,您不能將.java文件標記爲純文本,即使此功能是針對其他文件類型記錄的。
如何將.java文件標記爲應該被複制且未編譯的純文本內容?
您使用的是maven嗎? –
+1我有一個類似的問題,我無法改變一個項目。在這種情況下,它是不能通過設計進行編譯的代碼,以顯示它將被正確地動態編譯(或者具有預期的錯誤),IntelliJ完全不喜歡它。 Maven構建正確並複製資源。 –
@PeterLawrey同樣,我正在做的代碼生成,將導致文件編譯罰款。 – LostSalad