Maven-反应器(聚合)

Maven-反应器(聚合),maven,Maven,我有一个maven项目,其目录结构如下: trunk | pom.xml | coreutils | | pom.xml | | src | budgetCap | | pom.xml | | src trunk/pom.xml的内容是: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi

我有一个maven项目,其目录结构如下:

trunk
|    pom.xml
|    coreutils
|            |    pom.xml
|            |    src
|    budgetCap
|            |    pom.xml
|            |    src
trunk/pom.xml的内容是:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0              
hxttp://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>Ant2Maven</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>

<packaging>pom</packaging>
<name>Parent Pom</name>

<modules>

    <module>coreutils</module>
    <module>budgetCap</module>

</modules>
Maven按以下顺序删除两个模块的目标文件夹:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] coreutils
[INFO] budgetCap Maven Webapp
[INFO] Parent Pom
现在当我安装mvn时

shakim:trunk shakim.md$ mvn install
Maven按照以下顺序开始构建模块:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] coreutils
[INFO] budgetCap Maven Webapp
[INFO] Parent Pom
按照给定的顺序,coreutils成功安装到本地存储库中。 但是budgetCap在编译时失败,导致错误maven无法找到应该由coreutils生成的类

错误消息如下所示:

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building budgetCap Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ budgetCap ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ budgetCap ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 65 source files to /Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/target/classes
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING : 
[INFO] -------------------------------------------------------------
[WARNING]/Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/core/SingletonAggregator.java: /Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/core/SingletonAggregator.java uses unchecked or unsafe operations.
[WARNING]/Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/core/SingletonAggregator.java: Recompile with -Xlint:unchecked for details.
[INFO] 2 warnings 
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/core/BudgetCapServer.java:[41,34] package com.adiquity.request.utils does not exist
[ERROR] /Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/utils/Utils.java:[9,34] package com.adiquity.request.utils does not exist
[ERROR] /Users/shakim.md/shakim/maven/ops/adq_services/trunk/budgetCap/src/main/java/com/adiquity/budgetCap/log/data/parser/ConversionParser.java:[16,34] package com.adiquity.request.utils does not exist
简单地说,此包包com.adiquity.request.utils实际上存在于coreutils中,此模块budgetCap必须已成功定位该包,但它不是

第二种方法

进入coreutils内部,做一个测试

shakim:coreutils shakim.md$ mvn clean install
shakim:budgetCap shakim.md$ mvn clean install
进入预算映射并执行

shakim:coreutils shakim.md$ mvn clean install
shakim:budgetCap shakim.md$ mvn clean install
budgetCap编译成功,未报告任何类型的错误

我的问题是,我想在Maven中使用反应堆,但我无法理解为什么使用第一种方法构建失败,而使用第二种方法构建成功

我不知道如何使用反应堆,我们是否需要在coreutils的pom和budgetCap中包含任何东西,表明主干的pom是父级


注意:我不想在此项目中使用继承

请显示您收到的错误消息…已编辑…请再次查看…。最好清理本地存储库并制作一个
mvn清理包
这应该可以正常工作。你有这个项目吗?我们可以去看看。谢谢你的帮助!。我不能分享这个项目。但是,如果我清理我的本地存储库并执行“mvn清理包”,那么您不认为我肯定会出错,因为“第一个项目将不在本地存储库中”,那么“第二个项目将从何处解决其依赖关系”?不,这将在maven构建期间从maven reactor中解决。如果这样做有效,我们可以确保正确配置了结构和依赖项。