Maven 2 Maven 2-“mvn测试”未找到内部项目插件依赖项

Maven 2 Maven 2-“mvn测试”未找到内部项目插件依赖项,maven-2,maven-plugin,Maven 2,Maven Plugin,我有一个多模块maven项目maven 2.2.1。 其中一个模块是maven插件 该插件绑定到另一个模块的编译阶段,并作为直接依赖项添加,以触发模块构建的正确反应器顺序 如果我在根模块上运行“mvn clean install”,并使用一个新的本地存储库,那么无论是构建、测试还是安装,一切都会顺利进行。我确信我的项目的工件并没有部署在任何地方,只安装在我机器的本地repo中 但是如果我删除本地存储库并执行“mvn测试”,插件模块会被报告为丢失吗?然而,构建顺序是正确的,插件模块是在模块使用之前

我有一个多模块maven项目maven 2.2.1。 其中一个模块是maven插件

该插件绑定到另一个模块的编译阶段,并作为直接依赖项添加,以触发模块构建的正确反应器顺序

如果我在根模块上运行“mvn clean install”,并使用一个新的本地存储库,那么无论是构建、测试还是安装,一切都会顺利进行。我确信我的项目的工件并没有部署在任何地方,只安装在我机器的本地repo中

但是如果我删除本地存储库并执行“mvn测试”,插件模块会被报告为丢失吗?然而,构建顺序是正确的,插件模块是在模块使用之前成功构建的

是否对带有“maven插件”包装的maven模块进行了特殊处理?

我不明白为什么其他项目模块间的依赖关系被正确解析,而不是这个特定的依赖关系

问题在于,必须先将Maven插件安装到本地存储库中,然后才能将插件用作依赖项或更好地作为生命周期的一部分。

问题在于,必须先将Maven插件安装到本地存储库中,然后才能将插件用作依赖项或更好地作为生命周期的一部分生命周期。

我不明白为什么您需要更改反应堆建造顺序?顺序不对吗?好吧,如果我简单地将插件的绑定放在我的客户机模块中,插件模块是在客户机模块之后构建的。这就是我所期望的,因为依赖关系是不同的。这是您通过via提供的,而不是在该区域。最简单的解决方案是将maven模块上的一个组件放入需要该组件的模块中。这应该可以处理反应堆的顺序将相应地改变。我不确定a是否理解这件事是正确的。该构建需要插件还是依赖于其他模块?插件的最佳解决方案是单独开发它们。对于集成测试,您可以使用maven-invoker;然而,使用,我成功地在需要它的模块之前构建了maven插件模块。你下面的第二个答案在我的上下文中非常有意义,我将进一步调查为什么会想到这一点!:我不明白你为什么要改变反应堆的建造顺序?顺序不对吗?好吧,如果我简单地将插件的绑定放在我的客户机模块中,插件模块是在客户机模块之后构建的。这就是我所期望的,因为依赖关系是不同的。这是您通过via提供的,而不是在该区域。最简单的解决方案是将maven模块上的一个组件放入需要该组件的模块中。这应该可以处理反应堆的顺序将相应地改变。我不确定a是否理解这件事是正确的。该构建需要插件还是依赖于其他模块?插件的最佳解决方案是单独开发它们。对于集成测试,您可以使用maven-invoker;然而,使用,我成功地在需要它的模块之前构建了maven插件模块。你下面的第二个答案在我的上下文中非常有意义,我将进一步调查为什么会想到这一点!:谢谢你的回答;但是你能给我们指一下maven的文档吗?我不能给你一个直接的链接,但我可以解释。插件的问题是,它在生命周期中不是作为依赖项使用的,而不是像任何其他jar库一样,通过使用构建区域而不是依赖项区域来表示。这是有道理的。我会沿着这条路走!谢谢你的回答;但是你能给我们指一下maven的文档吗?我不能给你一个直接的链接,但我可以解释。插件的问题是,它在生命周期中不是作为依赖项使用的,而不是像任何其他jar库一样,通过使用构建区域而不是依赖项区域来表示。这是有道理的。我会沿着这条路走!