搭建maven私服

1、下载完Nexus之后进入目录\Nexus\nexus-2.12.1-01\bin\jsw\这目录底下有各种各样的操作系统的子目录,根据系统进入到对应目录中,我的是64位windows看到的内容如下:搭建maven私服_第1张图片

console-nexus.bat是控制台启动nexus,用这个可以启动和重启。

install-nexus.bat先将nexus注册成windows服务,以后直接启动了。相应的uninstall-nexus是卸载服务

start-nexus.bat和stop-nexus.bat分别是启动和关闭服务。

2、登录Nexus提供的管理后台,因为咱们下载的目录里有自带的容器了,所以可以直接本机地址:游览器中输入http://localhost:8081/nexus/,出现如下图所示就代表nexus已经启动成功。默认端口是8081,可以在\Nexus\nexus-2.12.1-01\conf\nexus.properties这个文件里更改端口

# Jetty section

application-port=端口号

application-host=0.0.0.0

nexus-webapp=${bundleBasedir}/nexus

nexus-webapp-context-path=/nexus

搭建maven私服_第2张图片

可以点右上角的log in 登录默认的用户名和密码:admin/admin123。嘿嘿好多公司的私服都是默认的用户名和密码,以前没搭过私服,在以前公司自己maven的settings.xml里见到这用户名和密码还颇感意外,现在明白了。

3、登录后点Repositories之后右侧列表入下:有几个概念自己之前总是不明白,借机会查了一下表示的意思。

搭建maven私服_第3张图片

最常用的实际就是这三个了。

Releases: 用来部署管理内部的发布版本构件的宿主类型仓库

Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库

Central: 用来代理maven中央仓库中发布版本构件的仓库


这几个知道一下就行了。

3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库

Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库

Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库

Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库


重点讲一下PublicRepositories

PublicRepositories:这个对应的Type是group,默认的仓库组(settings.xml里最常用的配置这个),这个概念maven里没有的,maven就只管凭坐标取包。点中这一行后在下面的几个标签里选configuration往下面拖一下有Order Group Repositories:它就是说将几个仓库放一起管理,比如公司里可能有自己封装的一系列jar包独立建一个仓库名字,把它们和默认的这几个仓库一起管理,取包的时候按照这里的顺序,一般把central放最后因为这个是中央仓库,从apache的中央仓库取最慢。搭建maven私服_第4张图片

4、接下来最重要的是配置Nexus和开启索引,如果我们不开启这个,在里面搜索的时候啥也找不到,开启以后搜索就可以找到坐标了。搜索的时候可以按照:

Keyword Search          关键字搜索

Classname Search       类名

GAV Search                 没查到猜的(g对应group,v对应version,a对应artifactid,说白了就是坐标)

Checksum Search        校验和搜索,没用过

下载远程索引到本地:还是点中Central,Apache SpnapShots 在下面把Download Remote Indexes 属性改成True之后点save,在上面的Central,Apache SpnapShots上右键点Repair Index,就开启了,等着它下一会儿索引目录。之后点Browse Index就可以看到目录结构了,此时搜索就可以用了。搭建maven私服_第5张图片

5、接下来就是使用的问题了在maven的settings.xml文件里首先是配置本机使用的下载的jar包保存的路径,就是所谓的localRepository本地仓库问题。

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>E:/repository/maven_repository</localRepository>

然后是镜像,这里mirrorOf可以写central就是只为central做镜像,如果写*号则是代表所有仓库,settings.xml里配置的都是全局的就是针对所有使用这个maven的工程。

<mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>NexusMirror</name>
      <url>http://172.20.50.20:8081/nexus/content/groups/public/</url>
</mirror>

  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

interactiveMode

指定Maven是否试图与用户交互来得到输入,默认是true

usePluginRegistry

如果设置为true,则在{user.home}/.m2下需要有一个plugin-registry.xml来对plugin的版本进行管理。默认是false

offline

如果不想每次编译的时候都去查找远程中心仓库,就需要设置为true,但前提是本地仓库中已有需要的jar包,默认是false

Servers

一般私服弄好了就不需要这个了,但是如果有安全方面的需要,需要提供认证信息才能访问这些私服,这时就需要使用servers元素(需要注意的是配置私服的信息是在pom文件中,但是认证信息则是在setting.xml中,这是因为pom文件往往是被提交到代码仓库中供所有成员访问的,而setting.xml是存放在本地的,这样是安全的)。

Profile

这个需要详细说一下,pom.xml文件里也是可以配这个的,但是settings.xml是全局的,profile可以根据不同的条件就是他的id来激活不同的构建过程。它的原文注释里也很清楚的写了比较推荐的命名方式是env-test/env-product这种形式,一般可以用来区分生产环境和测试环境用不同的构建。

<profile>
     <id>pahc-dev</id>
     <repositories>
       <repository>
           <id>local-nexus</id>
           <name>local private nexus</name>
           <url>http://172.20.50.20:8090/nexus/content/groups/public/</url>
           <releases>  
              <enabled>true</enabled>  
           </releases>  
           <snapshots>  
              <enabled>true</enabled>  
           </snapshots> 
       </repository>
     </repositories>
   </profile>

激活不同的构建有很多种,比如还是在这个配置文件里用activeProfiles标签

<activeProfiles>
	<activeProfile>pahc-dev</activeProfile>
</activeProfiles>

也可以用maven命令在打包的时候加命令 mvn package –P pahc-dev 如果是 mvn package -P !pahc-dev 就是不启用这个构建。还可以根据操作系统来启动某个构建,或者根据文件路径,或者根据jdk来启用某个构建。

来一个jdk的例子

<profiles>  
       <profile>  
              <id>profileTest1</id>  
              <jdk>[1.4,1.7)</jdk>  
       </profile>  
<profiles>

参考了两个博客:

http://blog.csdn.net/liujiahan629629/article/details/39272321

http://blog.csdn.net/stypace/article/details/38458377

你可能感兴趣的:(maven,nexus,私服)