Maven插件和依赖项之间有什么区别?

abh*_*493 1 dependencies neo4j maven

我正在使用Neo4j和MongoDB和Grails,我想知道Maven Neo4j插件是否也为我的构建提供了Neo4j依赖项.同样适用于MongoDB.

我很迷惑.我应该使用什么,插件或依赖项?有什么不同?

DB5*_*DB5 9

依赖关系是您的项目需要在某个时间点(即在编译时或运行时)在其类路径中可用的工件(即jar)

但是,插件是一个工件,您可以在项目中配置它以使其在项目构建期间实际执行某些操作.(例如,有一些插件可以实际编译你的java类,复制文件或启动和停止数据库等等).项目的类路径中没有插件.

以Neo4J为例,如果你的项目需要neo4j类在类路径上可用,你可以将它包含为依赖项 - 可能是因为你正在编译它们的API.但是,如果您只需要运行Neo4J服务器进行测试,那么您将使用Neo4J 插件让它在Maven运行测试之前启动服务器,然后插件将在测试完成后停止服务器.

我建议阅读Sonatype的书Maven:A Complete Reference,了解Maven的更多细节.