..

maven#dependencyManagement && mirrors && servers

dependencyManagement 用于对版本进行管理,不下载实际的jar包。

如果一个包在dependencyManagement中进行声明了,那么在pom中的<dependencies><dependency>节点下就不用些版本号了。

 

  <!--这里才会真正的下载jar包,对应的jar的版本会去dependencyManagement中去寻找,找不到就报错了,否则就要在下面写出version-->   
 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!--依赖版本定义,这里只是声明,如果要用到jar,就用我这边规定的版本-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

 


 

 

mirrors:

mirror和repository都是提供jar包下载的地址,但是mirror的优先级更高,如果配置多个mirror,要注意mirrorOf的取值问题。比如我想在阿里云镜像仓库下载jar,然后在私有仓库下载自己的jar可以这样配置:

  <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
      <id>nexus-xingan</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://192.168.100.100:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>

 


 

 

servers:

如果想发布jar包到私服或者sonatype,需要在配置文件的servers节点配置服务器的账号密码,类似如下配置:

file:D:\develop\apache-maven-3.5.2\conf\settings.xml

  <servers>
    <server>  
      <id>releases</id>  
      <username>admin</username>
      <password>xxxx我的密码</password>
    </server>  
    <server>  
      <id>Snapshots</id>  
      <username>admin</username>
      <password>xxxx我的密码</password>
    </server>   
  </servers>

需要注意的是,上面的server->id 要严格对应pom文件中distributionManagement->snapshotRepository->id

 file:xxxx/pom.xml

<distributionManagement>
    <snapshotRepository>
        <id>Snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </snapshotRepository>
    <repository>
        <id>releases</id>
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
</distributionManagement>

 

posted @ 2020-02-29 20:36  罗浩楠  阅读(247)  评论(0)    收藏  举报
..