我的maven项目结构如下
Project A
pom.xml
- ProjectB
pom.xml
- ProjectC
pom.xml
- ProjectD
pom.xml
- ProjectY
pom.xml
通过使用maven reactor选项,我可以
clean install -pl projectB
或clean install -pl projectY
但在尝试使用clean install -pl projectC
构建第二级子模块时,maven抛出
org.apache.maven.MavenExecutionException: Could not find the selected project in the reactor: projectC
如何使用maven反应器选项构建第二个level+子模块
发布于 2014-04-15 14:45:23
从-pl
选项的文档中,它说明了以下内容:
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
对你来说最重要的部分是:“或者通过它的相对路径”。
因此,要构建projectC
,只需通过它的相对路径(projectB/projectC
)来引用它。所以你需要的命令是:
mvn clean install -pl projectB/projectC
发布于 2019-02-14 17:33:05
这是一个类似问题的answer,在这里也是相关的。
通过使用artifactIds,您不必了解项目的结构。
如果您只使用给定项目的artifactIds,则必须在命令行上正确定义它:
Maven的帮助输出(mvn --help
)
要构建的所有项目的指定反应堆项目的
逗号分隔列表。项目可以通过groupId:artifactId或其相对路径指定
这意味着在您的情况下,您必须定义:
mvn clean install --projects :projectC,:ProjectY
请注意,artifactIds前面的:
表示您省略了groupId
发布于 2019-01-08 19:05:39
以防其他人也有这个:
我也遇到了这个错误消息。原因是我意外地在终端路径中的一个(子)模块中。
当然,该命令必须在项目的根层次结构中执行。根据上面的示例,您必须确保执行如下命令:
clean install -pl projectB
at Poject A
例如,在ProjectY或项目结构中其他更深的地方。
正确:
user:~/workspace/IdeaProjects/pojecta{master}$ clean install -pl projectB
错误:
user:~/workspace/IdeaProjects/pojecta/projecty{master}$ clean install -pl projectB
https://stackoverflow.com/questions/23075415
复制相似问题