一、软件准备
1、apache-maven-3.0-bin.tar.gz下载地址:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0-bin.tar.gz
2、nexus-oss-webapp-1.8.0-bundle.tar.gz下载地址:http://nexus.sonatype.org/downloads/
二、maven安装配置
1、创建需要操作maven的用户组以及用户(如果用root用户安装不用创建)
1. #groupadd apaduser //创建用户组
2. #useradd -g apaduser apaduser //创建用户并指定用户组
3. #passwd apaduser //为用户分配密码
2、创建解压目录,并将apache-maven-3.0-bin.tar.gz文件解压到指定目录
1. #cd /opt
2. #mkdir maven
3. #chown -R apaduser:apaduser /opt/maven
4. #chmod 755 /opt/maven
5. #su -l apaduser
6. #tar -zvxf apache-maven-3.0-bin.tar.gz
7. #ln –s apache-maven-3.0 apache-maven
3、配置环境变量 (因为每种linux系统配置文件不一样,
详细请看http://blog.csdn.net/cuker919/archive/2010/11/17/6014727.aspx)
1. #cd /home/apaduser (“sudo su –“ for root user)
2. #vi .bash_profile
3. #. .bash_profile
在文件中添加如下行:
1. M2_HOME=/opt/maven/apache-maven
2. export M2_HOME
3. PATH=$PATH:$M2_HOME/bin
4. export PATH
4、查看版本
1. #cd /opt/maven/apache-maven/bin
2. #mvn –version
如果显示版本信息,应该会在${user}目录下创建.m2目录
5、查看.m2目录
1. #cd /home/apaduser/.m2
2. 如果没有.m2目录,则可以手动添加一个
3. #mkdir .m2
6、如果需要把maven的repository目录指定到其他目录,则修改maven安装目录下conf中的配置文件settings.xml文件
1. #vi /opt/maven/apache-maven/conf/settings.xml
2. 将文件中<localRepository>….</localRepository>的注释打开
3. 或者在文件中增加 在这个注释下增加
4. <localRepository>your repository path</localRepository>
二、搭建nexus私服
1、解压nexus-oss-webapp-1.8.0-bundle.tar.gz文件到指定目录
1. #cp nexus-oss-webapp-1.8.0-bundle.tar.gz /usr/local
2. #tar -zvxf nexus-oss-webapp-1.8.0-bundle.tar.gz
3. #ln –s nexus-oss-webapp-1.8.0 nexus
2、启动nexus
1. #cd /usr/local/nexus/bin/jsw
2.
3. 选择自己机器的版本:
4.
5. #cd linux-x86-64/
6. #./nexus start
7.
8. 重启:
9. #./nexus restart
10. 停止:
11. #./nexus stop
3、运行nexus
在浏览器中输入:http://changethislocalhost:8081/nexus
就可以看到nexus 的主页,点击右上角Log in
默认用户名和密码是:admin/admin123
运行后会自动生成一个nexus工作目录sonatype-work,nexus下载的jar包会存放在
sonatype-work/nexus/storage中
8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。
4、Nexus仓库
nexus的仓库类型分为以下四种:
group: 仓库组
hosted:宿主
proxy:代理
virtual:虚拟
首次登陆nexus后可以看到以下一个仓库组和多个仓库。
图(4)
Public Repositories: 仓库组
3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
Central: 用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
5、配置nexus
5.1、开启远程索引
新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123。
点 击左边Administration菜单下面的Repositories,找到右边仓库列表中的三个仓库Apache Snapshots,Codehaus Snapshots和Maven Central,然后再没有仓库的configuration下把Download Remote Indexes修改为true。如下图
然后在Apache Snapshots,Codehaus Snapshots和Maven Central这三个仓库上分别右键,选择Repari Index,这样Nexus就会去下载远程的索引文件。
这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse Index
在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如:maven, 那么查询结果如下:
true是开启,false是关闭 由于中央仓库内容比较多,因此其索引文件比较大,需要查看下载是否完成了,我们可以单击界面左边导航栏中的 Scheduled Tasks 链接后,就可以看到系统调度的任务其状态为 runing,在说哦因下载完毕之后,该任务就会消失。
Scheduled Tasks 界面:
只有下载了,在search查询才会有东西,不然什么都搜索不到。
5.2建立宿主仓库
新 建公司的内部仓库,步骤为Repositories –> Add –> Hosted Repository,在页面的下半部分输入框中填入Repository ID和Repository Name即可,比如分别填入
zfy 和 zfy repostiory,另外把Deployment Policy设置为Allow Redeploy,点击save就创建完成了。
这里我点击添加宿主类型的仓库,在仓库列表的下方会出现新增仓库的配置,如下所示:
点击save按钮后就会在仓库列表中看到刚才新增的仓库。
5.3、创建Nexus仓库组
Nexus 中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样的,我只管根据 groupId,artifactId,version等信息向你要构件。为了方便Maven的配置,Nexus能够将多个仓库,hosted或者 proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。
neuxs- 1.9.2.3中默认自带了一个名为“Public Repositories”组,点击该组可以对他保护的仓库进行调整,把刚才建立的公司内部仓库zfy repostiory加入其中,这样就不需要再在maven中明确指定内部仓库 的地址了。同时创建一个Group ID为public-snapshots、Group Name为Public Snapshots Repositories的组,把Apache Snapshots、Codehaus Snapshots、Snapshots和zfy repostiory加入其中。
到这里neuxs的安装配置就完成了,下面介绍如何在maven中使用自己的私服。
点击菜单栏上的Add按钮后选择Proxy Repository,看到如下所示配置界面:
以上本人分别创建 了 hosted和group ,没有创建proxy,经maven测试通过。
- <?xml version="1.0" encoding="UTF-8"?>
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
- <pluginGroups></pluginGroups>
- <proxies></proxies>
- <servers>
- <server>
- <id>nexus-releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>nexus-snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
- <mirrors>
- <mirror>
- <id>nexus-releases</id>
- <mirrorOf>*</mirrorOf>
- <url>http://localhost:8081/nexus/content/groups/public</url>
- </mirror>
- <mirror>
- <id>nexus-snapshots</id>
- <mirrorOf>*</mirrorOf>
- <url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
- </mirror>
- </mirrors>
- <profiles>
- <profile>
- <id>nexus</id>
- <repositories>
- <repository>
- <id>nexus-releases</id>
- <url>http://nexus-releases</url>
- <releases><enabled>true</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- <repository>
- <id>nexus-snapshots</id>
- <url>http://nexus-snapshots</url>
- <releases><enabled>true</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>nexus-releases</id>
- <url>http://nexus-releases</url>
- <releases><enabled>true</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </pluginRepository>
- <pluginRepository>
- <id>nexus-snapshots</id>
- <url>http://nexus-snapshots</url>
- <releases><enabled>true</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
- <activeProfiles>
- <activeProfile>nexus</activeProfile>
- </activeProfiles>
- </settings>
- 7、 maven 项目 的pom.xml配置
- <pre class="html" name="code"> <distributionManagement>
- <!-- 两个ID必须与 setting.xml中的<server><id>nexus-releases</id></server>保持一致-->
- <repository>
- <id>nexus-releases</id>
- <name>Nexus Release Repository</name>
- <url>http://localhost:8081/nexus/content/repositories/releases</url>
- </repository>
- <snapshotRepository>
- <id>nexus-snapshots</id>
- <name>Nexus Snapshot Repository</name>
- <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
- </snapshotRepository>
- </distributionManagement></pre><pre class="html" name="code"> </pre><pre class="html" name="code">8、mvn:deploy命令上传包,会发现下载路径必不是中央库的路径,而是nexus里面的仓库组路径。这个说明配置环境成功。</pre><pre class="html" name="code"><img alt="" src="http://img.my.csdn.net/uploads/201301/10/1357787083_3866.png"><img alt="" src="http://img.my.csdn.net/uploads/201301/10/1357787109_8992.png"></pre><pre class="html" name="code"> </pre>
- <pre></pre>
- <pre></pre>
2)增加新的Repository,有一些比较常用jar包在nexus提供的repository中可能找不到,
一般比较常用的有
1. JBOSS的两个:
2. http://repository.jboss.org/maven2/
3. http://repository.jboss.org/nexus/content/repositories/releases/
4. SUN的:
5. http://download.java.net/maven/2/
6. K-INT的:
7. http://developer.k-int.com/maven2/
8.
9. 因为找juel:juel-impl:2.2.1 这个jar包,所以我还添加了一个自己找的:
10. http://repository.exoplatform.org/content/groups/public/
添加步骤:
点击Add->Proxy Repository->填写Repository ID, Repository Name, 以及Remote Storage Location 其他的默认即可。
3) 将新增的Repository添加到Public Repositories中
在Public Repositories 的Configuration中,将多选Select中的项全部添加到左边,然后保存。
4) 添加自己的jar包
1. 在repository列表中有一个3rd party,也就是第三方jar包,点击会看到一个Artifact Upload选项卡,点击后,填写相应的信息。
2. GAV Definition 一般选择 GAV Parameters
3. 然后添加Group:Artifact:Version:Package
4. 示例 juel:juel-impl:2.2.1:jar
然后选择要上传的jar包,保存即可
比如我们项目需要如下几个包:
javax.jms:jms:1.1:jar
proxool:proxool:0.9.1:jar
proxool:proxool-cglib:0.9.1:jar
com.lowagie:itextasian:1.0:jar
com.danga.MemCached:memcached:2.0.1:jar
5) nexus中设置代理服务器
选择左侧administrator菜单中的Server选项,在右侧打开的页面的中下部,有一个选择项:Default HTTP Proxy Settings(optional) 将前面的复选框选中,填写相应的代理服务器信息即可。 web-proxy.cce.hp.com:8080
6) 编写自己的settings.xml,文件内容如下:
1. <settings>
2. <proxies>
3. <proxy>
4. <id>normal</id>
5. <active>true</active>
6. <protocol>http</protocol>
7. <username>deployment</username>
8. <password>deploy</password>
9. <host>changethislocalhost:8081/nexus</host>
10. <port>80</port>
11. <nonProxyHosts>changethislocalhost:8081/nexus</nonProxyHosts>
12. </proxy>
13. </proxies>
14.
15. <mirrors>
16. <mirror>
17. <!–This is used to direct the public snapshots repo in the
18. profile below over to a different nexus group –>
19. <id>nexus-public-snapshots</id>
20. <mirrorOf>public-snapshots</mirrorOf>
21. <url>http://changethislocalhost:8081/nexus/content/groups/public-snapshots</url>
22. </mirror>
23. <mirror>
24. <!–This sends everything else to /public –>
25. <id>nexus</id>
26. <mirrorOf>*</mirrorOf>
27. <url>http://changethislocalhost:8081/nexus/content/groups/public</url>
28. </mirror>
29. </mirrors>
30.
31. <profiles>
32. <profile>
33. <id>nexus</id>
34. <repositories>
35. <repository>
36. <id>central</id>
37. <url>http://central</url>
38. <releases><enabled>true</enabled></releases>
39. <snapshots><enabled>true</enabled></snapshots>
40. </repository>
41. </repositories>
42. <pluginRepositories>
43. <pluginRepository>
44. <id>central</id>
45. <url>http://central</url>
46. <releases><enabled>true</enabled></releases>
47. <snapshots><enabled>true</enabled></snapshots>
48. </pluginRepository>
49. </pluginRepositories>
50. </profile>
51. <profile>
52. <!–this profile will allow snapshots to be searched when activated–>
53. <id>public-snapshots</id>
54. <repositories>
55. <repository>
56. <id>public-snapshots</id>
57. <url>http://public-snapshots</url>
58. <releases><enabled>false</enabled></releases>
59. <snapshots><enabled>true</enabled></snapshots>
60. </repository>
61. </repositories>
62. <pluginRepositories>
63. <pluginRepository>
64. <id>public-snapshots</id>
65. <url>http://public-snapshots</url>
66. <releases><enabled>false</enabled></releases>
67. <snapshots><enabled>true</enabled></snapshots>
68. </pluginRepository>
69. </pluginRepositories>
70. </profile>
71. </profiles>
72. <activeProfiles>
73. <activeProfile>nexus</activeProfile>
74. </activeProfiles>
75. </settings>
将settings.xml文件复制到${user}/.m2目录下
7) 测试
创建一个maven项目
#mvn archetype:generate
如果创建一个web项目可以选择83
填写相应的信息,maven会从私服上下载相应的jar包,看到的地址应该都是changethislocalhost的
项目创建成功后,将自己的pom.xml文件放在项目,执行
#mvn install 或者#mvn package
mvn会下载pom.xml文件定义的jar依赖
下载完成后,你可以在自己指定的repository目录下, 如果没有指定则是在 .m2/repository目录下查看自己的jar包
至此,我们的maven安装以及私服的搭建工作就完成了。
转自:http://blog.csdn.net/cuker919/article/details/6338039
相关推荐
Maven Nexus 私服搭建 从零开始,资源下载、安装指导、开发配置说明
1. **安装Maven**:下载Apache Maven 3.0的二进制包,解压并配置环境变量。 2. **创建项目**:使用`mvn archetype:create`命令生成项目结构。 3. **编辑POM.xml**:配置项目信息、依赖和插件。 4. **构建项目**:...
总的来说,Maven3.0是一个强大且成熟的构建工具,它的出现极大地推动了Java项目的标准化和自动化,而"apache-maven-3.0.5"这个压缩包正是获取和安装这个版本的Maven所需的所有文件。通过下载并解压,开发者可以在...
在Linux环境中,构建Java开发的高效工具链通常包括安装配置Maven和搭建Nexus服务器。以下将详细讲解这两个过程。 **一、安装JDK** 在安装Maven之前,首先需要安装Java Development Kit(JDK)。从Oracle官方网站...
Linux Maven Maven私服Nexus安装文档主要涵盖了在CentOS操作系统上安装和配置Maven以及搭建Maven私有仓库Nexus的详细步骤。以下是整个过程的详细说明: 1. **安装Maven** - **确认安装源**:首先,你需要检查你的...
Nexus 搭建 Maven 私服 + Maven 安装步骤 Nexus 是一个功能强大且灵活的仓库管理工具,能够帮助开发团队更好地管理项目依赖项和构件。通过搭建 Nexus 私服,可以实现项目依赖项的集中管理、加速项目构建和部署、...
为了搭建内网 Maven 私服,需要下载和安装 Nexus 仓库管理工具,Nexus 是一个功能强大且灵活的仓库管理工具,支持 Maven、Gradle 和 Ivy 等构建工具。下面是搭建内网 Maven 私服的步骤: 1. 下载 Nexus 首先,需要...
### Windows 下 Nexus 搭建 Maven 私服详解 #### 一、为什么使用 Nexus 在软件开发过程中,尤其是...通过以上步骤,就可以成功搭建并配置好基于 Windows 的 Nexus Maven 私服,有效提升团队开发效率及资源利用率。
本教程将指导您在Linux环境下,利用Nexus 3.14和Maven 3.6.3快速搭建Maven私服。 首先,我们来看看所需的主要组件: 1. **Nexus 3.14**:这是Sonatype公司提供的开源仓库管理工具,它可以作为Maven私服,支持多种...
4. **验证配置**:配置完成后,可以通过在命令行输入`mvn -v`或`mvn --version`来验证Maven是否成功安装并配置。 **压缩包内容** `apache-maven-3.0.3`这个压缩文件通常包含以下内容: 1. `bin`目录:包含了用于...
本文详细介绍了在CentOS环境下使用Nexus搭建Maven私库的整个过程,包括环境准备、软件安装、配置调整、启动与访问等多个环节。通过这些步骤,可以帮助开发者有效地管理项目依赖,提高开发效率。此外,还提供了一些...
【Linux下利用nexus搭建maven私服】 在Linux环境下,Nexus是一款强大的仓库管理器,可以用来搭建Maven私有仓库。Nexus不仅可以作为一个中央仓库的代理,还支持创建自己的存储库,方便组织内部共享依赖,提高开发...
在本文中,我们将介绍如何搭建一个 Maven 私服,使用 Nexus 作为私服解决方案,并详细介绍 Nexus 的安装、配置和使用。 一、Nexus 简介 Nexus 是一个由 Sonatype 开发的 Maven 私服解决方案,它提供了强大的仓库...
Nexus私服搭建步骤详解 Nexus 私服是一种流行的 ...通过上面的步骤,可以成功搭建 Nexus 私服,并将 Maven 项目部署到 Nexus 私服上。Nexus 私服可以帮助企业级软件开发更方便地管理项目依赖项,从而提高开发效率。
"手动搭建maven私服-安装配置nexus 3.4教程" 手动搭建maven私服是指使用nexus 3.4安装配置一个maven私服,实现公司或个人项目的构件管理。下面将详细介绍手动搭建maven私服的过程。 一、安装nexus 3.4 首先下载...
Linux版的Maven私有仓库服务Nexus是一个强大的工具,尤其在Java开发环境中,它用于存储、管理和分发软件库组件。Nexus是Sonatype公司的一款产品,它提供了对Maven、Gradle和其他构建工具的强大支持,使得团队可以更...
【Maven3.0安装】 Maven是一款强大的项目管理和依赖管理工具,广泛应用于Java开发领域。它通过使用一种标准化的项目对象模型(Project Object Model,POM),可以帮助开发者构建、管理和部署项目。以下是如何安装...