Maven如何处理模块之间的依赖关系?
根据,Maven如何处理模块之间的依赖关系?,maven,dependencies,Maven,Dependencies,根据,mvn install将“将包安装到本地存储库中,作为本地其他项目的依赖项使用”。然后,本地存储库存储我远程下载的所有JAR 我的模块与其他模块有依赖关系。当我运行mvn包时,我的本地存储库中没有存储任何内容,但依赖项似乎已经满足。那么Maven如何处理模块间的依赖关系呢?Maven是从构建的目标目录中引用每个模块的JAR,还是从另一个位置获取它们?这取决于您正在执行的阶段。在编译之前,Maven将失败,因为没有编译的类。在编译和包之间,使用目标/类。对于package和更高版本,使用ta
mvn install
将“将包安装到本地存储库中,作为本地其他项目的依赖项使用”。然后,本地存储库存储我远程下载的所有JAR
我的模块与其他模块有依赖关系。当我运行
mvn包
时,我的本地存储库中没有存储任何内容,但依赖项似乎已经满足。那么Maven如何处理模块间的依赖关系呢?Maven是从构建的目标目录中引用每个模块的JAR,还是从另一个位置获取它们?这取决于您正在执行的阶段。在编译之前,Maven将失败,因为没有编译的类。在编译
和包
之间,使用目标/类
。对于package
和更高版本,使用target/artifactId version.jar
Corey
您是对的,严格按照Maven docs操作意味着mvn编译
on:
parent_pom/
subA/
pom.xml
subB/
pom.xml # depends on subA
应失败,因为subA尚未推出本地回购
在幕后发生的事情是,Maven使用reactor
欺骗构建,使其查看同一构建上早期子模块的target
dir
在这个问题的范围之外,它是Maven最不透明的部分之一,但如果你掌握了它,它也是最强大的部分之一。你最好仔细阅读一下
希望有帮助