仓库

1、仓库
maven编译时会按照配置中的构件坐标把依赖加到CLASSPATH
2、构件坐标与仓库路径,仓库根目录
  groupid/artifactid/version/arifactid-version.packaging|extension--classfier
3、仓库分类
  构建开始时,会先在本地仓库查找,不存在就去远程仓库下载到规则路径下,然后再加入类路径
  即使本地仓库已经存在,会根据配置检查更新。
  快照更新策略:会比较本地构建目录下元数据文件和远程仓库目录下元数据文件,来决定是否下载更新
  release/latest(快照)
  ---本地仓库
  ---远程仓库/私有仓库
    ---中央仓库
    ---公共仓库 http://download.java.net/maven/2
               http://repository.jboss.com/maven2/
    ---私有仓库
4、仓库路径设置
   M2_HOME/conf/settings.xml--全局配置
   ~/.M2/settings.xml---个人私有设置
   --<settings>
      <localRepository>D:/xxxx</localRepository>
   </settings>
5、构件入库的方法
   ---mvn clean install -Dmaven.test.skip=true
   ---从远程仓库加载安装
6、仓库超级POM在maven-module-builder.jar文件,所有maven项目会继承这个超级POM
   <repositories>
       <repository>
         <id>central</id>
         <name>maven switchboard</name>
         <url>http://repo1.maven.org/maven2</url>
         <layout>default</layout>
         <snapshots>
           <enabled>false</enabled>
         </snapshots>
      </respository>
      <repository>
        <id>central</id>
        <name>maven switchboard</name>
        <url>http://repository.jboss.com/maven2/</url>
        <layout>default</layout>
        <releases>
          <enabled>true</enabled>
          <updatePolicy>daily/never/always/5(分钟)</updatePolicy>
          <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
     </respository>
   </repositories>
   7、远程仓库的认证
   <settings>
     <servers>
        <server>
          <id>central</id>---注意ID需要与repositories中定义的id匹配
          <username>xx</username>
          <password>xx</password>
        </server>
     </servers>
   </settings>
   8、发布到远程仓库--认证同上锁 mvn clean deploy
   <distributionManagement>
      <repository>
        <id></id>
        <name></name>
        <url>xxx</url>
      </repository>
   </distributionManagement>
   9、SNAPSHOT版本妙用--SNAPSHOT意味着不稳定
     每次构建时,maven会根据仓库<repository>定义的策略,去服务器检查是否存在新的版本,
     通过比较本地元数据文件和远程元数据文件的时间戳,如果有就下载更新。
     SNAPSHOT版本在deploy时,maven会给版本打时间戳。
   10、当依赖版本是release/latest/SNAPSHOT时,都会检查更新
       release会检查最新的发布,会检查最新的快照或发布,SNAPSHOT最新的快照
   11、插件的远程仓库
     <pluginRepositories>
         <pluginRepository>
           <id>central</id>
           <name>maven switchboard</name>
           <url>http://repo1.maven.org/maven2</url>
           <layout>default</layout>
           <snapshots>
             <enabled>false</enabled>
           </snapshots>
        </pluginRepository>
      <pluginRepositories>

posted @ 2019-09-14 17:37  FromScratch  阅读(140)  评论(0编辑  收藏  举报