Maven存储库继承:覆盖还是合并?

时间:2018-03-21 22:18:46

标签: maven

My Maven项目使用Spring Boot .pom作为其父级:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
    <relativePath/>
</parent>

根据Maven指南Introduction to the POM

  

POM中合并的元素如下:

     
      
  • 依赖关系
  •   
  • 开发人员和贡献者
  •   
  • 插件列表(包括报告)
  •   
  • 带有匹配ID的插件执行
  •   
  • 插件配置
  •   
  • 资源
  •   

我为此项目配置了自己的本地存储库(只包含一个jar):

<repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>

因此,如果存储库不在POM中合并的&#34;元素列表中,&#34;为什么我的构建工作正常?我的repo只包含一个jar,但我依赖的不止于此,所以如果我的存储库定义完全是&#34; masking&#34;我父母的存储库定义,我不认为构建会起作用。我假设因为我已经指定了父级,所以我也没有将Super POM指定为父级。

1 个答案:

答案 0 :(得分:0)

正如前面提到的here,无论如何,你总是从SuperPOM获得标准的存储库集(最后它由你的父pom或其父pom等继承)并且存储库没有被屏蔽。

如果您不想使用中央存储库,则应在settings.xml中创建镜像

$MAVEN_HOME/conf/settings.xml 
像这样

<mirror>
 <id>internal-repository</id>
 <name>Maven Repository Manager running on repo.mycompany.com</name>
 <url>http://repo.mycompany.com/proxy</url>
 <mirrorOf>*</mirrorOf>
</mirror>