Maven说,它无法在“市场”中找到某些东西;反应堆;
我有一个maven项目,我在项目根目录下使用--projects命令来运行几个pom文件 mvn清洁安装--项目proj1,然后是-proj2 “proj1”和“then proj2”是我想要运行的项目的工件ID。也就是说,我为每个项目访问pom.xml并在那里使用“工件id” proj1和then-proj2都是主pom文件中项目的子模块 假设proj1在A中,然后-proj2在B中,A和B都在主pom文件中 当我运行这个程序时,maven告诉我:“在reactor:proj1中找不到所选的项目”Maven说,它无法在“市场”中找到某些东西;反应堆;,maven,Maven,我有一个maven项目,我在项目根目录下使用--projects命令来运行几个pom文件 mvn清洁安装--项目proj1,然后是-proj2 “proj1”和“then proj2”是我想要运行的项目的工件ID。也就是说,我为每个项目访问pom.xml并在那里使用“工件id” proj1和then-proj2都是主pom文件中项目的子模块 假设proj1在A中,然后-proj2在B中,A和B都在主pom文件中 当我运行这个程序时,maven告诉我:“在reactor:proj1中找不到所选的项
这真令人沮丧——为什么不告诉我反应堆中的所有项目是什么?不管怎样,我做错了什么?您使用的命令:
mvn clean install --projects 'submodule1','submodule2`
在执行此命令的模块的pom.xml
中指定的子模块submodule1
和submodule2
上工作
本指南将帮助您了解反应器及其分类顺序。该用例模块的一般结构如下所示:
<groupId>stackoverflow</groupId>
<artifactId>mainmodule</artifactId>
<packaging>pom</packaging>
<version>1.2.3</version>
<modules>
<module>submodule1</module>
<module>submodule2</module>
... others
</modules>
... other tags
stackoverflow
主模块
聚甲醛
1.2.3
子模块1
子模块2
... 其他
... 其他标签
如果只使用给定项目的artifactId,则必须在命令行上正确定义:
Maven的帮助输出(mvn--help
)
以逗号分隔的所有要构建的指定反应堆项目列表
项目。项目可以由[groupId]:artifactId或其
相对路径
这意味着在您的情况下,您必须定义:
mvn clean install --projects :proj1,:then-proj2
一个适合我的解决方案,从根目录运行下面的命令
mvn clean install --projects :projA, :projB -am
假设projB依赖于projA
-上午
如果指定了项目列表,也可以
建立项目所需的
名单
试试这个:
mvn clean install -pl A/proj1, B/then-proj2
看看这个:
另一件事是确保您已经在列表中列出了您的子项目
<modules>
<module>
从main的pom目录中,如果您没有以下错误,您仍然会有相同的反应器错误:
- “A”作为“main”中的模块,或
- “proj1”作为“a”中的模块,或
- “proj1A”作为“proj1”中的模块
如果你的模块是基于配置文件区分的,那么也一定要考虑配置文件。例如:
mvn -P profile1 -pl relative/path/to/project1 clean install
对于这种设置,pom应为:
<profiles>
<profile>
<id>profile1</id>
<modules>
<module>project1</module>
</modules>
</profile>
<profile>
<id>profile2</id>
<modules>
<module>project2</module>
</modules>
</profile>
</profiles>
简介1
项目1
简介2
项目2
不提及概要文件也会给出反应堆中找不到的
,maven使用的所有术语对我来说都很混乱。“子模块”名称是什么xml元素?@bharal已经更新了答案,当您在执行此命令的目录下查看pom.xml
时,您可以了解更多关于它的信息。我想您的答案如下:
<profiles>
<profile>
<id>profile1</id>
<modules>
<module>project1</module>
</modules>
</profile>
<profile>
<id>profile2</id>
<modules>
<module>project2</module>
</modules>
</profile>
</profiles>