我使用Eclipse 4.3.1與Maven集成。使Eclipse識別正常源文件和測試源文件之間的區別
Eclipse無法識別正常源文件和測試源文件之間的區別。
例如:當我使用一類Mockito的範圍是在普通的源文件夾中測試時,一切似乎都很好。或者當我在測試源文件夾中錯誤地創建一個類時,什麼都不會發生。
只有當Jenkins執行Maven構建時,纔會顯示編譯錯誤。
我可以以某種方式使Eclipse正常工作嗎?
我使用Eclipse 4.3.1與Maven集成。使Eclipse識別正常源文件和測試源文件之間的區別
Eclipse無法識別正常源文件和測試源文件之間的區別。
例如:當我使用一類Mockito的範圍是在普通的源文件夾中測試時,一切似乎都很好。或者當我在測試源文件夾中錯誤地創建一個類時,什麼都不會發生。
只有當Jenkins執行Maven構建時,纔會顯示編譯錯誤。
我可以以某種方式使Eclipse正常工作嗎?
您必須在運行時間和編譯時間之間做出區別。
編譯時間: 的Eclipse僅支持一個建立每個項目的路徑。如果您的測試文件和應用程序文件共享相同的項目,則它們共享相同的編譯時類路徑。這意味着您可以從任何依賴項訪問src目錄中的任何類(test或main)和類。 Eclipse不能將其標記爲錯誤,因爲它沒有看到所有這些文件之間的差異。
運行時間: Eclipse允許在運行時使用不同的類路徑,並且m2e支持此功能。每個禁止訪問都會導致RuntimeException(ClassNotFoundException)。在運行時
訪問如下:
# access from -> access to
src/main/java -> jar(scope: compile) [allowed]
src/main/java -> jar(scope: test) [forbidden]
src/main/java -> src/test/java [forbidden]
src/test/java -> jar(scope: compile) [allowed]
src/test/java -> jar(scope: test) [allowed]
src/test/java -> src/main/java [allowed]
要回答你的問題:你想要什麼也不是沒有可能打補丁蝕。 儘管您可以將測試文件和應用程序分割爲單獨的項目。
最簡單的方法是運行/在檢查之前,你的本地計算機上測試您的應用程序
只是爲了澄清,@荒誕,心靈暗示在檢查前運行「MVN測試」本地 - 你可以這樣做你可以在eclipse中使用maven/eclipse集成(或者也可以使用pom.xml從目錄中的命令行)。我認爲這是很好的建議! – unigeek
@ user2317875「mvn test」根本沒有任何幫助。你必須運行主應用程序。從Eclipse啓動應用程序就足夠了。 (mvn檢查前檢查還是很好的建議) –
你是對的!我把它放在那裏,並在閱讀你最後一句關於在本地運行/測試你的應用程序的評論後評論。我的錯誤 - 謝謝! – unigeek