我是新來的maven工具,我用Spring和Hibernate做了一個項目,它們在pom.xml中作爲插件配置,但JUnit在依賴項下被標記。我的問題是一個插件作爲依賴關係的邏輯是什麼?pom xml中依賴和插件標籤之間的maven有什麼區別?
回答
插件和依賴項都是Jar文件。
但是它們之間的區別是,maven中的大部分工作都是使用插件完成的;而依賴關係只是一個Jar文件,將在執行任務時添加到類路徑中。
例如,您使用編譯器插件來編譯java文件。您不能使用編譯器插件作爲依賴項,因爲它只會將插件添加到類路徑中,並且不會觸發任何編譯。在編譯文件時要添加到類路徑中的Jar文件將被指定爲依賴項。
同樣適用於您的場景。你必須使用spring-plugin來執行一些spring可執行文件[我不確定使用了哪些spring-plugins。我只是在這裏猜測]。但是你需要依賴來執行這些可執行文件。 Junit在依賴項下被標記,因爲它被surefire插件用於執行單元測試。
因此,我們可以說,插件是執行任務的JAR文件,和依賴是它提供的類文件,執行該任務的罐子。
希望能回答你的問題!
Maven本身可以被描述爲食物處理器,它有很多不同的單位可以用來完成不同的任務。這些單位被稱爲插件。例如,編譯你的項目maven使用maven-compiler-plugin
,運行測試 - maven-surefire-plugin
等等。
maven的依賴關係是你的項目依賴的類的一個打包塊。例如,如果您希望能夠編寫JUnit測試,則必須使用JUnit註釋和類,因此您必須聲明您的項目依賴於JUnit。
感謝您的快速回復,抱歉,但我仍然很困惑,我知道JUnit的也是一個框架和(休眠,彈簧)還附帶下框架而已,所以在情況下,這意味着(休眠,彈簧),也可配置在依賴標籤?我希望你有我的問題。 – Soumyaansh 2012-08-09 11:24:43
是的,據我所知,Spring Maven插件沒有這樣的東西。通常,Spring庫(或Hibernate或JUnit或TestNG等)被聲明爲項目的依賴項。如果你是新的Maven時,我建議你閱讀[這](http://www.sonatype.com/books/mvnref-book/reference/)很不錯的書。 – 2012-08-09 11:45:14
感謝您的鏈接,我一定會通過它! – Soumyaansh 2012-08-13 04:45:46
插件是用於添加功能,以Maven
本身(如添加eclipse
支持或Maven
SpringBoot
支持等)。源代碼需要依賴性來通過任何Maven階段(例如,compile
或test
)。在JUnit
的情況下,因爲測試代碼基本上是您的代碼庫的一部分,並且您在測試套件內部調用JUnit
特定命令,並且這些命令不由Java SDK
提供,因此JUnit
必須存在於Maven
處於測試階段並且已處理通過在您的pom.xml
文件中提及JUnit
作爲依賴關係。
如果你從前端的背景和我一樣到來,並熟悉步兵和NPM,認爲它是這樣的:
首先你會跑,說,npm install grunt-contrib-copy --save-dev
。這就像maven的<dependency></dependency>
。它下載執行構建任務所需的文件。
,那麼你會配置任務Gruntfile.js
copy: {
main: {
src: 'src/*',
dest: 'dest/',
},
}
這就好比Maven的<plugin>/<plugin>
。您正在告訴構建工具如何處理由npm/<dependency></dependency>
下載的代碼。
當然,這不是一個確切的比喻,但足以幫助你的包裹頭部周圍。
- 1. Apache Maven:繼承,聚合和依賴之間有什麼區別?
- 2. Maven插件和依賴關係有什麼區別?
- 3. 應用依賴和模塊依賴/插件有什麼區別?
- 4. scope「import」和「pom」類型依賴關係有什麼區別?
- 5. Grails中的依賴和插件有什麼區別?
- 6. 標籤和標籤部件之間的區別是什麼
- 7. Maven中存儲庫和依賴項之間的區別是什麼?
- 8. 「用途」和「依賴」之間有什麼區別?
- 9. 路徑依賴類型和依賴類型之間有什麼區別?
- 10. Eclipse插件:依賴關係和擴展之間的區別
- 11. 依賴和組成之間的區別?
- 12. maven tomcat插件中「deploy」和「run」目標有什麼區別
- 13. 爲什麼maven識別只有安裝的POM文件的依賴關係?
- 14. config.xml中的插件和功能標籤有什麼區別?
- 15. 依賴注入 - 這兩個代碼之間有什麼區別?
- 16. Sonar和MAVEN POM文件依賴項
- 17. xml中的事件和標籤之間的區別
- 18. 如何輕鬆區分兩個Maven pom文件之間的依賴關係?
- 19. Maven發佈和Maven組件插件有什麼區別?
- 20. layout_alignStart標籤和layout_alignLeft之間有什麼區別?
- 21. Maven源插件jar和jar-no-fork目標之間的區別?
- 22. 清單文件和xml文件之間有什麼區別android
- 23. Maven的依賴型= POM
- 24. WPF中依賴項屬性和附加屬性之間有什麼區別?
- 25. Gradle maven-publish插件生成沒有依賴項的pom
- 26. pom中「插件」部分和「依賴」部分之間的區別。哪一個使用時?
- 27. Composite C1中.master和.xml之間的模板有什麼區別?
- 28. maven-rpm-plugin和rpm-maven-plugin之間的區別是什麼
- 29. <u>標籤和<ins>標籤之間有什麼區別?
- 30. 兩個BOLDFACE標籤和兩個斜體標籤之間有什麼區別?
感謝您的解釋,現在我知道了明確的:) – Soumyaansh 2012-08-13 04:43:45
尼斯解釋。 – bugCracker 2014-10-14 13:28:49
我能否告訴我執行階段和目標之間有什麼不同?因爲我知道這個階段正在討論maven的生命週期......但是爲什麼又要進入目標?任何提示?有時候我看到人們把生命週期關鍵字放在了目標...... ??? (?。?) – taymedee 2015-01-04 13:52:02