Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven如何处理模块之间的依赖关系?_Maven_Dependencies - Fatal编程技术网

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最不透明的部分之一,但如果你掌握了它,它也是最强大的部分之一。你最好仔细阅读一下

希望有帮助