1.使用Nexus搭建Maven私有服务器

在实际开发当中,有时候公司不提供外网给项目组人员,因此不能使用maven访问远程的仓库地址, 所以有必要在局域网里找一台有外网权限的机器,搭建nexus私服, 然后开发人员连接到这台私服上,这样可以通过这台搭建了nexus私服的电脑访问maven的远程仓库, 原理图如下:


2.环境搭建

1.首先确定我们的环境安装好maven,jdk等必须的环境

2.这些都准备好之后,去下载最新版本的nexus    下载地址:http://www.sonatype.org/nexus/go 

    我本地安装的是 nexus-2.2-01-bundle,最新的版本是nexus-2.4.0-09-bundle

3.打开目录nexus-2.4.0-09-bundle\nexus-2.4.0-09\bin\jsw 这个目录下面你会发现有很多系统版本的nexus环境

   我的电脑是win7 (64)为的系统,所以我选择的是windows-x86-64这个版本,当然可以根据个人的电脑系统选择对应的版本

Archiva maven私服搭建 maven服务器搭建_jar

打开一个版本如下图所示:

点击install-nexus.bat,访问http://localhost:8081/nexus/ 启动后会看到:

在右上角点击log in 点击登录 用户名是admin,密码是admin123,可以看到左侧信息:

接下来我们配置一下maven的代理服务器,前提是你的电脑不能上网

右边很多选项,找到这里

这样代理服务器就添加好了

接下来我们看一下repositories:

我们用3rd party这个第三方功能,将maven仓库中没有构件的jar包上传到服务器

 

 

那么现在nexus已经安装好,怎么使用上传的jar包吧,很简单的,前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下:

先去服务器看看jar的maven构件

 

然后在pom.xml中添加如下的本地仓库地址:

<repositories>
        <repository>
            <id>nexus</id>
            <name>Team Nexus Repository</name>
            <url>http://localhost:8081/nexus/content/groups/public</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Team Nexus Repository</name>
            <url>http://localhost:8081/nexus/content/groups/public</url>
        </pluginRepository>
    </pluginRepositories>
    <dependencies>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc</artifactId>
            <version>10.1.0.2.0</version>
        </dependency>
    </dependencies>

 

至此完成了nexus私有服务器的搭建,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息即可获取私服的jar.

 

如果添加其他的构件时,会先在nexus私服下载好,以后才会下载到本地。以后,如果发现私服已经存在某一jar包,则会直接从私服下载,如果没有再去网络上下载,这就是搭建私服的好处

在要上传的文件的目录中执行以下命令即可:

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.5.4-SNAPSHOT -Dpackaging=jar -Dfile=dubbo-2.5.4-SNAPSHOT.jar -Durl=http://admin:admin123@localhost:8080/nexus/content/repositories/snapshots

 



Nexus仓库类型

hosted:  本地仓库,通常我们会部署自己的构件到这一类型的仓库, 比如公司的第二方库

proxy:    代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库

group:   仓库组,用来合并多个hosted/proxy仓库