2013-03-12 81 views
6

我有一個intellij-idea的奇怪問題。在我的java程序中運行一些主函數時,intellij會創建一個名爲out的目錄來存儲類文件以及其他一些內容。Intellij遞歸嵌套輸出目錄

它創建的目錄結構如下

<PROJECT_ROOT>/out/production/<PROJECT_NAME>/ 

沒什麼奇怪的存在,但是,當我再次運行裏面的IntelliJ程序,它創建的目錄,這樣的結果內的新out目錄結構相同如下

<PROJECT_ROOT>/out/production/<PROJECT_NAME>/out/production/<PROJECT_NAME>/ 

那麼如果我再次運行它嵌套另一個!

<PROJECT_ROOT>/out/production/<PROJECT_NAME>/out/production/<PROJECT_NAME>/out/production/<PROJECT_NAME>/ 

等等...

這是非常令人沮喪的行爲,至少可以說。我認爲這可能是我的環境(Windows),所以我在我的Linux機器上設置了項目,並觀察到相同的行爲。我從git repo中克隆了這個項目,但我不認爲這會是原因。我注意到我在克隆的不同項目中也有同樣的行爲。

我的下一步是在每個環境中從零開始創建兩個完全不同的項目,並查看是否可以通過這種方式重現問題。一旦我嘗試過與其他任何事情一起嘗試後,我會更新這篇文章,但我認爲我會在這裏發帖,同時繼續解決問題,以防其他人看到此行爲並知道解決方案。

我會隨時更新。任何「想法」(看看我在那裏做什麼;)或建議表示讚賞!

UPDATE 從頭開始創建在Linux中一個Hello World PROG沒有重現行爲。

UPDATE在Windows中從頭創建一個Hello World PROG沒有重現行爲。

回答

7

我能夠重現這一點。當基本模塊也是src根時,IntelliJ將以這種方式運行。如果你將基本模塊取消爲src root,然後創建一個src目錄來放入你的源文件,你會注意到在下一次編譯時,整個目錄結構會被吹走,IntelliJ會回到合理的行爲。

+0

更一般地說,如果類輸出目錄位於標記爲src,test或resource的目錄中,並且未被排除,則會發生這種情況。由於我們給IDE的遞歸定義,推測輸出目錄會被複制到自身中,然後下一次編譯輸出目錄及其子目錄時,它們將被複制到輸出目錄中。等等。 – MilesHampson 2016-07-12 06:13:55

+0

我遇到了同樣的問題,但是從我所說的無法解決的問題...我在哪裏可以找到基本模塊,以及如何將它取消爲src根目錄? – 2017-05-06 12:29:59