java - Mavn執行測試時<scope>test</scope>導致錯誤
問題描述
學習maven test時,執行mvn test時,會找不到org.junit在pom.xml中已經引入
<dependencies><dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency> </dependencies>
報錯信息如下文件目錄如下
hello目錄下存在如下文件
其中GreeterTest為測試
執行mvn compile 或者mvn package也會報錯
當把pom.xml中junit依賴的scope去掉時,編譯和測試都能成功。
<dependencies><dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency> </dependencies>
造成這個的原因是什么?maven在執行compile時同時編譯*Test的文件嗎,那么為什么mvn test也不能成功?mvn test不是會自動執行*Test的文件嗎?而且scope test確定了測試時會引入junit
問題解答
回答1:這個問題其實你因為你不熟悉maven文件結構所致.測試類一般是放在src/test/java,而不是放在src/main/java下.maven在編譯的時候,src/main/java下是不引用<scope>test</scope>的jar,而編譯src/test/java下的測試這會引用<scope>test</scope>的jar
相關文章:
1. java - web項目中,用戶登陸信息存儲在session中好 還是cookie中好,取決于什么?2. angular.js - webpack build后的angularjs路由跳轉問題3. java - Activity中的成員變量被賦值之后,Activity被回收的時候內存才會被釋放嗎4. 為什么bindClass訪問不了的?5. 老師,flex-shrink: 1; 按視頻操作,不會自動縮放6. 數組按鍵值封裝!7. php由5.3升級到5.6后,登錄網站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?8. 請求一個數據返回內容為空或者錯誤如何再次請求幾次9. 使用list和each配合,的作業,輸出一行后,如何換行10. Discuz! Q 有人用過嗎?
