在子模块目录下运行mvn时,如何让Maven找到同级模块?
例如,我有一个游戏项目:在子模块目录下运行mvn时,如何让Maven找到同级模块?,maven,Maven,例如,我有一个游戏项目: superegg/ |- game/ | `- pom.xml -> (a lot of jars.) |- ai/ | `- pom.xml |- sprite/ | |- egg/ | | `- pom.xml -> sprite | |- badguy/ | | `- pom.xml -> sprite, ai | `- pom.xml -> game ` po
superegg/
|- game/
| `- pom.xml -> (a lot of jars.)
|- ai/
| `- pom.xml
|- sprite/
| |- egg/
| | `- pom.xml -> sprite
| |- badguy/
| | `- pom.xml -> sprite, ai
| `- pom.xml -> game
` pom.xml
(此处-->
表示取决于)
所有子模块均为快照版本,未安装,也未部署
现在,我想在badguy/
中做一些事情:
.../sprite/badguy/ $ mvn exec:java ...
但是,maven尝试从maven存储库中查找依赖项sprite、ai
,而不是。/../game
和。/../ai
如何让Maven解决项目目录中的子模块依赖关系
我没有安装它们,因为有太多的子模块(虽然这里没有列出),一个完整的编译/安装过程需要很长时间)。我也尝试过,但没有成功:
superegg/sprite/badguy/ $ mvn --reactor dependency:build-classpath
[INFO] Cannot execute mojo: build-classpath. It requires a project with an existing pom.xml, but the build is not using one.
superegg/ $ mvn -pl sprite/badguy dependency:build-classpath
Missing dependencies: ...
superegg/ $ mvn --reactor -pl sprite/badguy dependency:build-classpath
Project 'some-module' is duplicated in the reactor
顺便说一句,我可以从superegg/毫无问题地构建整个项目。如果您从IntelliJ内部加载顶级pom,它将持续为您“安装”所有模块。也就是说,你有一个已经在Maven reactor中的快照依赖项,因此它不需要麻烦去你的本地存储库。如果你从IntelliJ中加载顶级pom,它将继续为你“安装”所有模块。也就是说,你有一个已经在Maven reactor中的快照依赖项,因此它不需要麻烦去你的本地存储库。据我所知,你不能在Maven中这样做(它是一个构建工具,而不是IDE)。我建议您执行以下操作之一:
我进一步推荐某种远程桌面或ssh隧道,以便您可以使用Eclipse/IntelliJ/NetBeans。它们只提供您所需要的。据我所知,您不能在Maven中这样做(它是一个构建工具,而不是IDE)。我建议您执行以下操作之一:
我进一步推荐某种远程桌面或ssh隧道,以便您可以使用Eclipse/IntelliJ/NetBeans。它们提供您所需要的。IntelliJ很棒,但我不能在ssh/telnet中运行。IntelliJ很棒,但我不能在ssh/telnet中运行。