我是新来的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. 为什么maven识别只有安装的POM文件的依赖关系?
- 9. config.xml中的插件和功能标签有什么区别?
- 10. xml中的事件和标签之间的区别
- 11. Maven发布和Maven组件插件有什么区别?
- 12. layout_alignStart标签和layout_alignLeft之间有什么区别?
- 13. Gradle maven-publish插件生成没有依赖项的pom
- 14. WPF中依赖项属性和附加属性之间有什么区别?
- 15. maven-rpm-plugin和rpm-maven-plugin之间的区别是什么
- 16. 两个BOLDFACE标签和两个斜体标签之间有什么区别?
- 17. POM依赖不起作用(Eclipse,Maven,POM)
- 18. xml文档和xml之间有什么区别
- 19. 标签有什么区别
- 20. artifactId和name在maven POM中的区别
- 21. 标签和文本框之间的(技术)区别是什么?
- 22. 在Maven中,扩展和插件有什么区别
- 23. maven-resources-plugin和project.build.resources标签有什么区别?
- 24. Maven的依赖关系树和POM依赖
- 25. maven update和maven build有什么区别?
- 26. Maven POM依赖关系到ivy.xml文件
- 27. HTML中的object标签和include标签有什么区别?
- 28. dpm()和dsm()之间有什么区别?
- 29. @dynamic和@synthesize之间有什么区别?
- 30. vbNullString和“”之间有什么区别吗?
感谢您的解释,现在我知道了明确的:) – Soumyaansh 2012-08-13 04:43:45
尼斯解释。 – bugCracker 2014-10-14 13:28:49
我能否告诉我执行阶段和目标之间有什么不同?因为我知道这个阶段正在讨论maven的生命周期......但是为什么又要进入目标?任何提示?有时候我看到人们把生命周期关键字放在了目标...... ??? (?。?) – taymedee 2015-01-04 13:52:02