maven仓库配置

1.两类仓库

本地仓库(local repository)

存放jar包的地方。可以自定义本地仓库的位置,修改${user.home}/.m2/settings.xml :

  
  ...  
  D:\java\repository  
  ...  
  
你还可以在运行时指定本地仓库位置:

mvn clean install -Dmaven.repo.local=/home/juven/myrepo/

远程仓库(Remote repositories)

可以使用访问协议 such as file:// and http://. 运行maven所需jar包都是从本地仓库,引用在本地仓库没有时将触发从远处次仓库下载,并保存到本地。
2.Maven仓库概览
2.1 没有Maven仓库下的开发环境

maven仓库配置_第1张图片

 

2.2 具有团队内部远程仓库的开发环境

 

maven仓库配置_第2张图片

下面将就图2.2构建一个团队共享的maven repository

3.Maven仓库工具---Artifactory

3.1下载最新Artifactory,下面就我下载的Artifactory2.6.1配置作简单介绍。

1.双击artifactory.bat即可启动artifactory服务。访问地址http://localhost:8081/artifactory/可以看到服务的管理界面。

2.也可以在Tomcat部署Artifactory. 

    Startup the Servlet Container VM with -Dartifactory.home=$ARTIFACTORY_HOME, pointing to the location of your Artifactory home folder (If you do not specify this property it will default to${user.home}/.artifactory).

Alternatively, you can also set an ARTIFACTORY_HOME environment variable to point to your Artifactory home folder.
      Make Sure the folder is writable  by the user running the Servlet Container.
Artifactory will try to create the folder on startup if it does not exist.

Make sure the Artifactory configuration file $ARTIFACTORY_HOME/etc/artifactory.config.xml and the log4j configuration file $ARTIFACTORY_HOME/etc/log4j.properties exist in their respective locations.

Deploy the artifactory.war file into the container.

3.2.maven的远程仓库地址设置

默认的远程仓库

我安装了maven-2.0.10,我可以找到这个文件:${M2_HOME}/lib/maven-2.0.10-uber.jar ,打开该文件,能找到超级POM:\org\apache\maven\project\pom-4.0.0.xml ,它是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:

  
    
    central  
    Maven Repository Switchboard  
    default  
    http://repo1.maven.org/maven2  
      
      false  
      
    
上为超级POM配置了ID为central的远程仓库,如果pom.xml中未配置仓库,默认的将使用这个central的超级仓库。

3.2.1在POM中配置远程仓库
使用artifactory在POM中配置其它的远程仓库。


  .....

    
      my-repo
      my repository
      http://localhost:8080/artifactory/my-repo/
      
        true
      
      
        true
      
    
  

  
    
      my-repo
      my repository
      http://localhost:8080/artifactory/my-repo/
      
        true
      
      
        true
      
    
    
      oss.sonatype.org
      oss.sonatype.org
      http://oss.sonatype.org/content/groups/public
    
  
  ...

3.2.2在settings.xml中配置远程仓库

除了在pox.xml配置仓库,setting文件可以作为一个全局的配置,但并不是简单的将POM中的元素复制到settings.xml中就可以,setting.xml不直接支持 这两个元素。但我们还是有一个并不复杂的解决方案,就是利用profile,如下:

  
  ...  
    
      
      dev  
        
      
    
    
    dev  
    
  ...  
  
这里我们定义一个id为dev的profile,将所有repositories以及pluginRepositories元素放到这个profile中,然后,使用元素自动激活该profile。这样,你就不用再为每个POM重复配置仓库。



3.3上传构件至远程仓库

我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:

    
  ...    
      
        
      my-repo    
      Release Repository    
      http://localhost:8081/artifactory/my-repo    
        
   
  ...    


一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:
    
  ...    
      
        
      my-repo    
      admin    
      password    
           
  ...    
 
需要注意的是,settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地的。


 




 


你可能感兴趣的:(开发工具)