您的位置:首页 > 其它

Maven本地仓库配置和archiva私服搭建

2015-05-03 16:08 260 查看
学习Maven也有一段时间了,现将MAVEN结合ECLIPSE的开发经验总结一下

1. 配置本地自定义仓库

找到MAVEN的安装目录,在conf文件夹下找到settings.xml,文件,修改内容如下(以我自己的操作为例):

<setting>

    <localRepository>E:\maven\Repository</localRepository>

</setting>

然后,建立上面localRepository指定的文件夹E:\maven\Repository,同时将上面MAVEN安装目录下的settings.xml文件拷贝到E:\maven下,(注意,settings.xml文件必须和自定义仓库的文件夹在同一级,所以要放到E:\maven下)

至此,后续MAVEN下载的构件都将放到E:\maven\Repository下面

2. archiva私服搭建

首先要安装archiva,这个步骤略过,自行下载安装即可,下面直接进入主题,以我安装目录E:\server\apache-archiva-2.2.0为例

安装并系统archiva:

调出命令行,找到archiva的根目录,进入bin文件夹,然后输入archiva.bat console,archiva仓库服务就会启动WEB界面,第一次登陆系统会要求注册一个管理员帐号,自行注册即可,注意:邮箱地址是必填项,填一个自己的邮箱即可

配置archiva本地仓库:

登陆系统后,选中Repositories,系统会弹出上图界面,这有两个仓库,一个是Release仓库(即internal),用来存放正式构件的,另一个是snapshot仓库,用来存放快照版本的,个人一般用来做内部版本存放用。

我们以Release仓库为例,看下如何配置:

点击上图中的标记处按钮,会进入Release仓库的配置界面,如下图所示:

这里我们注意几个地方就好,Directory用来指定我们的仓库位置,Index Directory我个人习惯是将其指定到仓库下的子文件夹.indexer下,这个大家可以自行定义,其它选项不动即可,这几个配置好基本上就能保证私服能跑起来,有兴趣的可以自行研究其它选项。

对于snapshot的也是同样道理,这里不再赘述。

这样配置完后,私服就可以将构件存放到私服自定义的仓库位置,开发人员访问私服就可以找到自己想要的构件下载到本地进行开发。

用私服来代理远程仓库:

还是选择Repositories,不过这回我们要选Remote Repositories Management这个选项卡,进入后,我们可以看到上图界面所示:

其中central是archiva自带的远程仓库,系统默认访问这个仓库,sonatype-forge是我自己加的一个新仓库,在界面上点击Add这个链接可以新增加一个远程仓库,如果要修改某一个仓库配置,按本地仓库类似操作方法,选择Edit下的按钮,进入编辑界面,如下所示:

这里要注意三个东西,ID是远程仓库的唯一标识,不能弄错,Name可以自己随便写,建议跟远程仓库的NAME保持一致,Url不能错,自己要先搞清楚远程仓库的地址,添加即可,编辑好后,在下方有一个SAVE按钮,点击保存即可。

这样配置好后,archiva会依次检查所有的远程仓库,来寻找我们想要的构件,有两个就找两个,有三个就遍历三个,按照仓库配置的顺序挨个检查。

MAVEN指定访问私服进行构件下载:

archiva私服我们已经搭好了,它的远程代理仓库我们了设置好了,那如何告诉MAVEN通过私服来进行构件下载呢,以我个人设置为例,先找到E:\maven下的settings.xml文件,所有操作均在这个文件中完成

我们需要配置以下三个东西:

1. server

<server>

    <id>internal</id>

    <username>admin</username>

    <password>admin123</password>

</server>

2. mirror

<mirror>

      <id>internal</id>

      <name>Archiva Managed Internal Repository</name>

      <url>http://localhost:8081/repository/internal</url>

      <mirrorOf>*</mirrorOf>

</mirror>

3. profile

<profile>

    <id>archiva</id>

    <repositories>

        <repository>

          <id>central</id>

          <url>https://repo.maven.apache.org/maven2</url>

      <releases><enabled>true</enabled></releases>

      <snapshots><enabled>true</enabled></snapshots>

        </repository>

</repositories>

        <pluginRepositories>

        <pluginRepository>

          <id>central</id>

          <url>https://repo.maven.apache.org/maven2</url>

      <releases><enabled>true</enabled></releases>

      <snapshots><enabled>true</enabled></snapshots>

        </pluginRepository>

      </pluginRepositories>

    </profile>

4. activeProfiles

<activeProfiles>

    <activeProfile>archiva</activeProfile>

</activeProfiles>

我们一一分析:

我们首先要告诉MAVEN通过哪个路径来访问archiva私服,如上面配置,我的archiva的服务器文件存放路径为http://localhost:8081/repository/internal/,8081是我修改后的端口,默认为8080,修改位置在archiva安装目录下的conf文件夹中的jetty.xml,自行解决即可,很容易。我将这个私服取名为internal,这样我们就完成了教MAVEN去哪找私服的工作。

如果我们的私服设有访问密码,那么server这个就要加上,id必须和mirror中配置的私服ID保持一致,设置好用户名跟密码后就可以工作了。

私服访问地址跟权限我们都设置好了,接下来就是要让MAVEN不直接访问远程仓库而是通过私服来下载构件了,我们需要告诉MAVEN,在什么情况下,通过私服下载而不是访问远程仓库,在mirror选项里面,我们将mirrorOf设置为*,这就告诉MAVEN,你只要是从远程仓库下载就转到私服上去请求,私服帮你下载并传给你。

这样我们的工作基本上就算完成了,但是我们访问哪个远程仓库需要走私服这条路呢,在profile里面我们配置了两个仓库,一个maven的中央仓库,一个maven的插件仓库,这两个仓库我们都配置好,ID为central,这个不能错,仓库ID是不能错的,一定要仔细确认是否拼写正确且存在,这样配置好后,MAVEN访问这两个仓库就会直接访问私服,但是前提是私服有配置这个远程仓库,具体配置见上面私服配置部分。如果要加其它仓库,依葫芦画瓢加上即可。

这些都配置好后,为了让它生效,我们需要让这个profile配置变成活跃选项,最后

<activeProfiles>

    <activeProfile>archiva</activeProfile>

</activeProfiles>

这个就是做这个工作的,这四步完成后,整个私服就搭建完毕,我们就可以通过MAVEN访问私服下载构件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven archiva