1、下载完Nexus之后进入目录\Nexus\nexus-2.12.1-01\bin\jsw\这目录底下有各种各样的操作系统的子目录,根据系统进入到对应目录中,我的是64位windows看到的内容如下:
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
可以点右上角的log in 登录默认的用户名和密码:admin/admin123。嘿嘿好多公司的私服都是默认的用户名和密码,以前没搭过私服,在以前公司自己maven的settings.xml里见到这用户名和密码还颇感意外,现在明白了。
3、登录后点Repositories之后右侧列表入下:有几个概念自己之前总是不明白,借机会查了一下表示的意思。
最常用的实际就是这三个了。
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的中央仓库取最慢。
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就可以看到目录结构了,此时搜索就可以用了。
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