Maven介绍
Apache Maven是一个创新的软件项目管理和综合工具。
Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件。
Maven最强大的功能就是能够自动下载项目依赖库。
Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
Maven主要目标是提供给开发人员:
1)项目是可重复使用,易维护,更容易理解的一个综合模型。
2)插件或交互的工具,这种声明性的模式。
私服介绍
私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
Nexus介绍
Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。
如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。
正常做法是在本地架设一个Maven仓库服务器,即利用Nexus私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
Nexus在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间,Nexus私服就可以满足这样的需要。
Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
Nexus支持WebDAV与LDAP安全身份认证。
Nexus还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。
为什么要构建Nexus私服?
如果没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
总之,在本地构建nexus私服的好处有:
1)加速构建;
2)节省带宽;
3)节省中央maven仓库的带宽;
4)稳定(应付一旦中央服务器出问题的情况);
5)控制和审计;
6)能够部署第三方构件;
7)可以建立本地内部仓库;
8)可以建立公共仓库
这些优点使得Nexus日趋成为最流行的Maven仓库管理器。
1.官网下载tar包
2.解压
3.进入bin目录
4.执行 ./nexus run
5.访问http://部署nexus地址:8081
出现上述页面,说明配置nexus成功!
点击右上角“Log in”,
输入默认用户名(admin)和默认密码(admin123)登录
可以在“管理”里查看nexus的系统信息
Nexus仓库分类的概念:
1)Maven可直接从宿主仓库下载构件,也可以从代理仓库下载构件,而代理仓库间接的从远程仓库下载并缓存构件
2)为了方便,Maven可以从仓库组下载构件,而仓库组并没有时间的内容(下图中用虚线表示,它会转向包含的宿主仓库或者代理仓库获得实际构件的内容).
Nexus的web界面功能介绍
1.Browse Server Content
1.1 Search
这个就是类似Maven仓库上的搜索功能,就是从私服上查找是否有哪些包。
注意:
1)在Search这级是支持模糊搜索的,如图所示:
1.2 Browse
1)Assets
这是能看到所有的资源,包含Jar,已经对Jar的一些描述信息。
2)Components
这里只能看到Jar包。
2.Server Adminstration And configuration
看到这个选项的前提是要进行登录的,如上面已经介绍登陆方法,右上角点击“Sign In”的登录按钮,输入admin/admin123,登录成功之后,即可看到此功能,如图所示:
2.1 Blob Stores
文件存储的地方,创建一个目录的话,对应文件系统的一个目录,如图所示:
2.2 Repositories
1)代理中央Maven仓库 Proxy
这里就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。
这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。
创建Proxy的具体步骤
1--点击“Create Repositories”按钮
2--选择要创建的类型
3--填写详细信息
Name:就是为代理起个名字
Remote Storage: 代理的地址,Maven的地址为: https://repo1.maven.org/maven2/
Blob Store: 选择代理下载包的存放路径
2)宿主机 Hosted
Hosted是宿主机的意思,就是怎么把第三方的Jar放到私服上。
Hosted有三种方式,Releases、SNAPSHOT、Mixed
Releases: 一般是已经发布的Jar包
Snapshot: 未发布的版本
Mixed:混合的
Hosted的创建和Proxy是一致的,具体步骤和上面基本一致。如下:
注意事项:
Allow Redeploy:允许重新部署
Disable Redeploy:禁止重新部署
Read-Only:只读
3.仓库组(Repository Group)
通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包,如:
maven-public
nuget-group
4.日志及数据分析
=============================简介讲解=======================================
1. 代理仓库(Proxy Repository)
顾名思义是代理第三方仓库的,如:
maven-central
nuget.org-proxy
版本策略(Version Policy):
Release: 正式版本
Snapshot: 快照版本
Mixed: 混合模式
布局策略(Layout Policy):
Strict:严格
Permissive:宽松
2. 宿主仓库(Hosted Repository)
存储本地上传的组件和资源的,如:
maven-releases
maven-snapshots
nuget-hosted
部署策略(Deployment Policy):
Allow Redeploy:允许重新部署
Disable Redeploy:禁止重新部署
Read-Only:只读
3. 仓库组(Repository Group)
通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包,如:
maven-public
nuget-group
与Maven集成
1. Servers 配置认证信息
在Maven settings.xml中添加Nexus认证信息:
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
nexus-releases: 用于发布Release版本
nexus-snapshots: 用于发布Snapshot版本
Release版本与Snapshot版本的区分:
Release: 4.3.0
Snapshot: 4.3.0-SNAPSHOT
在项目POM.xml中设置的版本号添加SNAPSHOT标识的都会发布为SNAPSHOT版本,没有SNAPSHOT标识的都会发布为Release版本。
SNAPSHOT版本会自动加一个时间作为标识,如:4.3.0-SNAPSHOT发布后为变成4.3.0-SNAPSHOT-20160712.114532-1.jar
2. 配置自动化部署构件
在POM.xml中添加以下代码:
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://127.0.0.1:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://127.0.0.1:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
注意事项:
ID名称必须要与settings.xml中Servers配置的ID名称保持一致。
项目版本号中有SNAPSHOT标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。
3. 部署到Nexus仓库
mvn deploy
4. 上传第三方JAR包
Nexus 3.0不支持页面上传,可使用maven命令:
# 如第三方JAR包:aliyun-sdk-oss-2.2.3.jar
mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.2.3 -Dpackaging=jar -Dfile=D:\aliyun-sdk-oss-2.2.3.jar -Durl=http://127.0.0.1:8081/repository/maven-3rd/ -DrepositoryId=nexus-releases
注意事项:
1.建议在上传第三方JAR包时,创建单独的第三方JAR包管理仓库,便于管理有维护。(maven-3rd)
2.-DrepositoryId=nexus-releases 对应的是settings.xml中Servers配置的ID名称。(授权)
5. 使用代理中央仓库
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Plugin Repository</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories>
注意事项:
在开发中如果有严格的管理要求,可将SNAPSHOT和RELEASE单独配置。
有插件依赖时配置插件仓库,默认会使用Maven中央仓库。
参考
https://segmentfault.com/a/1190000005966312#articleHeader12
http://www.cnblogs.com/kevingrace/p/6201984.html
相关推荐
`nexus-3.38.0-01-unix.tar.gz` 是针对Unix系统的Nexus Repository Manager 3.x版本的安装包。 在Unix系统中,`.tar.gz` 文件是一种常见的归档格式,它通过`tar`命令打包多个文件和目录,并使用`gzip`工具进行压缩...
在本例中,我们讨论的是Nexus Repository OSS的3.x版本,具体为3.21.1-01,适用于Windows 64位操作系统。 标题中的"nexus-3.21.1-01-win64.zip.rar"表明这是Nexus Repository OSS的一个安装包,经过了.zip和.rar两...
《Nexus Repository Manager 3.x for Windows:深入解析与应用》 Nexus Repository Manager是一款由Sonatype公司开发的强大的仓库管理工具,专为Java开发者和Maven、Gradle等构建工具使用者设计。本文将深入探讨...
Nexus 3相较于2.x版本有着更好的性能和用户体验。 3. **Nexus 3.7.0 版本**:这是Nexus的一个稳定版本,提供了包括改进的性能、安全性和新功能在内的多项更新。使用这个版本,用户可以享受官方提供的最新特性和优化...
sudo chmod +x /opt/nexus-3.27.0-03/bin/nexus sudo ln -s /opt/nexus-3.27.0-03/bin/nexus /usr/local/bin/nexus sudo nano /etc/systemd/system/nexus.service ``` 在编辑器中输入服务配置,然后保存并退出。 4....
### Nexus 2.x 安装配置指南 #### 概述 Nexus是一款强大的Maven仓库管理工具,由Sonatype提供支持。它可以帮助企业管理和优化Java软件开发生命周期中的依赖关系和构建过程。本文旨在帮助您了解如何安装和配置Nexus...
4. **设置运行脚本权限**:给予`bin/nexus`脚本执行权限,使用`sudo chmod +x /opt/nexus/bin/nexus`命令。 5. **启动与停止Nexus**:使用`sudo -u nexus /opt/nexus/bin/nexus start`启动Nexus,`sudo -u nexus /...
Nexus 3.x是Nexus的主要当前版本,相比2.x版本,它引入了更现代的用户界面、更好的性能和更丰富的功能。"nexus-3.18.1-01"表示这是一个3.x系列的版本,具体为3.18.1-01,这意味着它是截止到发布时的较新稳定版本,...
《Nexus Repository Manager 3.x for macOS:深入解析与应用》 Nexus Repository Manager是一款功能强大的软件仓库管理工具,尤其在开源社区中被广泛应用。这个名为“nexus-3.64.0-04-mac.tgz”的压缩包文件,是...
Nexus Repository Manager 3.x官方手册详细介绍了如何使用这个版本,其中包含了系统要求、安装、配置、维护和故障排除等多个方面的详细信息。 手册提供了不同版本的下载链接,例如3.14.0版本在2020年4月20日发布,...
特别地,`sonatype-work/nexus3/conf`目录下的`nexus.properties`是Nexus的主要配置文件,可以在这里修改默认端口、数据存储路径等设置。 2. **nexus-3.16.1-02**:这是Nexus的实际可执行程序和库文件。在Linux上,...
标签 "nexus3", "nexus3.x", "linux", "nexus" 进一步强调了这个文件与Nexus 3.x系列、Linux环境以及Nexus产品本身有关。 在压缩包内部有两个主要文件:"nexus-3.26.1-02" 和 "sonatype-work"。"nexus-3.26.1-02" ...
本安装包"nexus-2.14.21"提供了在不同操作系统上搭建Maven私有仓库的解决方案,包括Windows、Linux和OS X。 1. Maven私有仓库:Maven是一个广泛使用的Java项目管理和综合工具,它通过依赖管理简化了项目的构建过程...
"nexus-3.16.0-01-unix.tar.gz" 是Nexus 3.16.0-01 版本的Unix/Linux版本的压缩包,适用于在类Unix操作系统(如Linux或Mac OS X)上部署。由于中国的网络环境,有时可能无法直接访问到官方下载站点,因此分享这个...
综上所述,Nexus Repository Manager OSS 3.x为macOS用户提供了一套强大的组件管理和分发解决方案,通过合理的配置和管理,能有效地提升开发团队的工作效率和软件质量。理解并掌握上述知识点,对于成功部署和使用...
在本文中,我们将深入探讨Nexus 2.x的最后一个版本——"nexus-2.14.17-01-bundle.zip",以及如何在国内环境下进行下载和启动。 首先,Nexus作为Maven仓库服务器,提供了中央仓库的镜像功能,能够快速访问和下载所需...
Nexus 3.x版本是其最新且功能强大的迭代,提供了一整套用于存储、管理和分发各种类型软件构件(如JARs,WARs,npm包,NuGet包等)的解决方案。以下将详细介绍Nexus 3.x在Linux环境下的安装过程以及相关知识点。 1. ...
注意:需要配置在bin目录的nexus运行脚本INSTALL4J_JAVA_HOME_OVERRIDE 而不要配置在linux启动脚本中添加Environment="JAVA_HOME=/usr/txp/java/jdk/jdk1.8.0_241" 亲测过,1X的版本用第二种可以
Nexus 3.x系列是其最新版本,提供了更高效、更安全的软件仓库服务。在这个"nexus3.X win64"压缩包中,包含的是适用于Windows 64位操作系统的Nexus 3.9.0-01版本。 **Nexus仓库管理器详解** 1. **功能特性** - **...