Maven攻略

私有仓库

Maven默认提供的中央仓库是由Apache提供的,使用maven过程中,受限于中国的网络环境,链接中央仓库速度不是非常理想。同时,开发过程中对中央仓库的依赖性太大,如果遇到外网无法访问的情况,会影响到开发进度。所以创建私有仓库势在必行。

配置私有仓库

Nexus下载

下载地址:http://www.sonatype.org/nexus/go

Nexus启动

Windows操作系统我下载zip包,解压后进入

将本地模块发布到私有库中

首先在项目POM文件里面添加要发布的私有库的信息

<!-- 配置远程发布到私服,mvn deploy -->  
    <distributionManagement>  
        <repository>  
            <id>releases</id>  
            <name>Nexus Release Repository</name>  
            <url>http://10.1.81.199:8081/nexus/content/repositories/releases/</url>  
        </repository>  
        <snapshotRepository>  
            <id>snapshots</id>  
            <name>Nexus Snapshot Repository</name>  
            <url>http://10.1.81.199:8081/nexus/content/repositories/snapshots/</url>  
        </snapshotRepository>  
    </distributionManagement>

之后修改maven配置文件settings.xml,添加nexus库的用户名以及密码。

id与远程发布库的id要一致。

<server>  
    <id>releases</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>  
<server>  
    <id>snapshots</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>  

创建中央库的镜像


最后在自己的应用中把中心仓库配置成建立的私有仓库地址即可,修改maven配置文件settings.xml

在mirrors添加mirror节点地址指向建立的私有仓库地址,mirrorOf属性值设为central为了覆盖超级pom中指定的central地址,如下

<mirrors>
    <mirror>
        <id>planetmirror.com</id>
        <name>PlanetMirror Australia</name>
        <url>http://downloads.planetmirror.com/pub/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

  • id, name是该镜像的唯一定义符。id用来区分不同的mirror元素。
  • url是该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。
  • mirrorOf是被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo1.maven.org/maven2)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。

依赖指定JDK版本

dependency下的属性classifier

这个属性用于区分从同一个pom编译出来的但是内容不同的同名包,例如同一个工程编译出两个artifact,一个支持jdk1.5一个支持jdk1.4,那么就可以使用这个来命名为jdk15和jdk14来区分,它如果出现在包名中,那么它必须跟在版本号后。还有一种情况是将一个工程的一些次要artifact附到主要artifact中,就可以使用这个来区分,例如一个工程产生sourcejavadocclass三种东西,那么就可以使用不同的classifier来分别标识这些东西。


参考文献

  1. http://blog.csdn.net/liujiahan629629/article/details/39272321
  2. http://www.iteye.com/problems/60531
  3. http://blog.csdn.net/dhmpgt/article/details/9998321