Maven说,它无法在“市场”中找到某些东西;反应堆;

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中找不到所选的项

我有一个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>