[英]Maven 3 build antrun issue with parent/child modules
我有一个带有几个子模块的父POM。 对于其中之一,我在构建中添加了一个antrun部分-此刻仅打印一条语句。 此子模块与整个集合中的其他模块有依存关系(因此父模块有8个子模块1-8,此模块(#5)取决于2和3)
antrun部分的格式为:
<build>...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>******************* Running generate </echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果我在父模块下执行操作(例如,验证或安装),则这些工作正常,并且按预期的方式,运行回显语句以执行包含此antrun任务的子代(#5)。
但是,如果我转到子模块并尝试从那里进行mvn验证,我会得到(传奇人物)
could not resolve dependencies for project...
失败。 但是所有模块都存在于我的本地存储库中,并且它们是最新的。 并且对于再次执行mvn install的问题的通常解决方法无法解决该问题。
在我看来,这似乎是个错误,除非其他人不知道(到底是什么)。
克里斯
如果在maven中调用子模块,则必须以特定方式进行。
+-- root (pom.xml)
+-- mod-child-1
+-- mod-child-2
+-- mod-child-3
+-- mod-child-4
....
如果你喜欢这样做,例如对mod-儿童3,你需要首先做一个MVN通过安装根......之后,你可以做您的多模块构建的根位置如下:
mvn -pl mod-child-3 package
OK,我的错,这一个。 我又增加了一个额外的POM父项目。 我希望将通用的依赖项放在其中,以保持顶层POM以及respo,分发内容等。
行家似乎将与此本地工作,但不会部署这种POM只是假象,以回购 - 所以这是从来没有在那里发现。 令人困惑的是为什么在从父级执行构建时这仍然有效。
反正它是固定的 - 我有折叠DEP的东西进入我的单亲POM,一切都很好。 感谢您的反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.