繁体   English   中英

父/子模块的Maven 3构建antrun问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM