2016-07-22 99 views
0

我有一個項目分支這裏顯示了我的問題:類路徑在搖籃中無法識別項目

https://github.com/testerstories/lucid-core/tree/feature/build-full-archive

具體來說,如果我跑gradle build,那麼:lucid-junit:compileJava任務運行時,我得到這樣一系列錯誤這對我只是在src/main/java/com/lucidtester/junit/runners類(LucidRunner):

package org.junit.runner.notification does not exist 
import org.junit.runner.notification.RunNotifier; 

package org.junit.runners does not exist 
import org.junit.runners.BlockJUnit4ClassRunner; 
        ^
package org.junit.runners.model does not exist 
import org.junit.runners.model.FrameworkMethod; 
         ^
package org.junit.runners.model does not exist 
import org.junit.runners.model.InitializationError; 

這似乎暗示JUnit是不被認可。但在IntelliJ中,我已將JUnit添加到類路徑中,編輯器當然能夠自動完成JUnit的各個方面。此外,在Project Explorer下的External Libraries樹中,我看到JUnit4被列爲一個庫。

同樣的事情發生,如果我限制了構建以特定的模塊,運行以下命令:

gradle :lucid-junit:build

在這一點上,我完全不知道是什麼問題。我只有一個最小類,我的構建文件(在模塊中)正在放入正確的依賴項(對於junit)。此外,我在主文件build.gradle中使用subprojects

我不知道還有什麼要檢查在這一點上。 IDE中沒有顯示錯誤。我的Gradle構建文件中沒有任何內容似乎會產生錯誤。但是看起來關於構建生命週期如何執行的東西並不能識別我的類路徑。

UPDATE

找到一些有趣的事情。如果我更改我的構建文件,IntelliJ會刷新所有內容。然後我發現我的外部庫不再顯示JUnit4。然後,LucidRunner.java文件突然間出現一系列關於JUnit的錯誤。

所以我選擇+輸入並選擇「添加JUnit4到類路徑」。

將JUnit4添加回外部庫,我的錯誤消失。

gradle build命令仍顯示相同的錯誤。如果我再次更改構建文件,相同的情況。

我已經嘗試了什麼似乎是IntelliJ的「重新啓動」答案:無效緩存並重新啓動,但沒有任何效果。

+0

系統(在IDE之外)是否有正確的類路徑集? – user356540

回答

0

那麼,我似乎已經回答了我自己的問題。

build.gradle文件,是在清醒的,JUnit的項目,我有這樣的:

dependencies { 
    compile "junit:junit:${junit_version}" 
} 

我所要做的就是在文件的頂部添加一個空行。

我不知道爲什麼那麼重要,但是當我這樣做的時候,所有突然的事情都會奏效。此外,在空白行中,我的外部庫中現在看不到「JUnit4」,而是「Gradle:junit:junit:4.12」。

如果我刪除最初的空白行,問題會再次出現。

再一次,我不知道爲什麼這個工程,但毫無疑問,它的確如此。