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
Java 如何不从settings.xml服务器中提取模块(依赖项)?_Java_Maven_Maven Module - Fatal编程技术网

Java 如何不从settings.xml服务器中提取模块(依赖项)?

Java 如何不从settings.xml服务器中提取模块(依赖项)?,java,maven,maven-module,Java,Maven,Maven Module,我有以下项目包结构 parent |- module1 |- module2 |- module3 我能够将module3作为依赖项包含在module1和module2的pom.xml文件中。这使我能够访问模块3中的所有依赖项和代码 <dependency> <groupId>my.group</groupId> <artifactId>module3</artifactId> <version&

我有以下项目包结构

parent
|- module1
|- module2    
|- module3
我能够将module3作为依赖项包含在module1和module2的pom.xml文件中。这使我能够访问模块3中的所有依赖项和代码

<dependency>
    <groupId>my.group</groupId>
    <artifactId>module3</artifactId>
    <version>1.0.0</version>
</dependency>
理想情况下,module3根本不会作为工件部署,相反,它可能只是具有
pom
。module3只是一些只应由module1和module2使用的模块。此外,供参考,模块3的依赖关系树构建得非常好。

  • 确保模块的版本正确
通常,当您在父项目中运行“mvn clean install”时,将生成所有模块,顺序为builds module3->module1和module2。模块3总是先构建的

谢谢

  • 依赖项不应该是打包的
    pom
    。需要适当的JAR,还需要部署到存储库中

  • 通常,在多模块项目的父级上运行生成命令。如果要将生成限制为一个模块,请使用
    -pl


  • 据我所知,以下maven模块是同一个反应堆的一部分:

    parent
    |- module1
    |- module2    
    |- module3
    
    父级
    应具有:

    <modules>
      <module>module1</module>
      <module>module2</module>
      <module>module3</module>
    </modules>
    
    尽管这可能很奇怪,但这应该是可行的


    您还可以使用
    --offline
    强制maven联机。

    您不应该将
    模块3
    作为
    父级
    的第一个模块吗?@ernest\k排序只是基于命名约定的包结构。我是否应该重命名module3,使其位于前面?我试图指出的一点是,
    module3
    应该在其他模块之前构建。那是因为其他两个都依赖它。不管它们的名称如何,其他人依赖的模块应该在父pom中声明。module3是在其他人之前构建的,但是,当已经有本地版本可用时,它仍然会尝试远程搜索。尽管如此,我没有对父pom运行maven命令。它只是反对模块1或模块2。重命名module3->module0会解决问题吗?如果它将该模块置于包结构中的其他模块之前?否,它无法通过更改模块名称来解析。-确保:+包括并订购父pom中的所有模块只需使用1个版本,它与父级->的版本相同,您不需要在Dependencies中声明版本检查项目中的依赖项以确保没有冲突。更正所有错误,如果错误仍然发生,请描述更多细节或添加项目的setting.xml文件。没有足够的信息让我回答细节,到底是什么错误。如果您将BOM作为依赖项,则不应将其打包为pom?BOM请转到
    。它们应该是包装
    pom
    。我有点含糊,“依赖性”是指“您依赖的Java代码”。这实际上是我在回答中没有提到的,但这是一个有效的用例。什么是元模块?包括pom并没有解决它试图从源代码中提取的问题,事实上它在module1和module2中创建了识别module3的问题。有没有一种方法可以将-o或-offline的等价物写在pom本身中?我指的是一个带来依赖性但本身不是jar的模块。我很确定它应该与type=pom一起工作。但是,您有两个用例1)mvn干净安装2)mvn依赖项:树。dependency:树可能不使用reactor中的工件,如果您不先安装mvn,这将下载它。如果某个东西有类,它就不能打包
    pom
    <modules>
      <module>module1</module>
      <module>module2</module>
      <module>module3</module>
    </modules>
    
    <dependency>
        <groupId>my.group</groupId>
        <artifactId>module3</artifactId>
        <version>1.0.0</version>
        <type>pom</type>
    </dependency>