ネクサスインストール、構成、使用して
1.はじめにPW
PWは、特殊なLANリモートリポジトリにプロキシリモートリポジトリの目的を設定し、サードパーティのコンポーネントを展開しています。PW、ダウンロードMavenのメンバー、直接リクエスト、PWに必要後、PWは、ローカルリポジトリにダウンロード上に存在し、そうでない場合、PWはPWにメンバをダウンロードし、外部のリモートリポジトリを要求し、その後、ダウンロードのローカルリポジトリに提供されます。
:私たちは、次のようなプライベートサーバ、セットアップするために、専用のMavenリポジトリ管理ソフトウェアを使用することができますApacheのArchiva、Artifactory、Sonatypeネクサスを。ここでは、Sonatypeネクサスを使用しています。
2.インストールネクサス
ネクサス2.1をダウンロード
ネクサスプロフェッショナルは、我々がネクサスOSSのオープンソース版をダウンロードした有料に必要とされます。ネクサスは、突堤コンテナバンドルを構成する2つのインストールパッケージAパッケージを提供しています、他の容器を含む戦争パッケージではありません。ダウンロード:https://help.sonatype.com/display/NXRM2/Download+Archives+-+Repository+Manager+OSS
2.2インストールネクサス
ユーザーを追加します。
groupaddのネクサス useraddの-d /ホーム/ネクサス-gネクサスネクサス |
ダウンロードが良いです後、ネクサス2.14.15-01-bundle.tar.gz解凍するには、次のコマンドを使用します
タール-zxvfネクサス2.14.15-01-bundle.tar.gz
解凍した後、2つの完全なディレクトリを取得します:ネクサス2.14.15-01とsonatype-仕事、プットはネクサスプログラムである、倉庫クラス情報を置きます。
ディレクトリ以下ネクサス2.14.15-01ディレクトリを保存します
|
ビン:実行可能ファイル
LIB:ライブラリ
コンフィギュレーション・ネクサス
#桟橋セクション アプリケーション・ポート= 8081 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-path=/nexus
# Nexus section nexus-work=${bundleBasedir}/../sonatype-work/nexus runtime=${bundleBasedir}/nexus/WEB-INF
# orientdb buffer size in megabytes storage.diskCache.bufferSize=4096 |
启动nexus,在启动前确保java环境以及安装好了。
|
启动nexus:
到bin目录下:./nexus start
访问nexus
在浏览器进行访问。地址:http://ip:端口/nexus
3配置nexus
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123.
最频繁的就是点击左侧菜单栏的Repositories按钮
一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。
(1)hosted 类型的仓库,内部项目的发布仓库
(2)releases内部的模块中release模块的发布仓库
(3)snapshots发布内部的SNAPSHOT模块的仓库
(4)3rd party第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
(5)proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
(6)group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
maven项目索引
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能
保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如spring-core
就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息指定仓库。
<repositories> <repository> <id>nexus</id> <name>nexus</name> <url>http://192.168.0.166:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> |
指定插件仓库:
<pluginRepositories> <pluginRepository> <id>nexus</id> <name>nexus</name> <url>http://192.168.0.166:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> |
这样只有本项目才在私服下载组件
这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。
<profile> <id>nexusProfile</id> <repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.0.166:8081/nexus/content/groups/public/</url> <layout>default</layout> <releases> <enabled>true</enabled> </releases> <snapshotPolicy>always</snapshotPolicy> </repository> </repositories> </profile> |
追加激活profile:
<activeProfiles> <activeProfile>central</activeProfile> </activeProfiles> |
之后所有本机的Maven项目就在私服下载组件。(这样比较好)
项目的发布,在项目的pom文件中添加如下配置:
<distributionManagement> <repository> <id>user-release</id> <name>User Project Release</name> <url>http://192.168.0.166:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>user-snapshots</id> <name>User Project SNAPSHOTS</name> <url>http://192.168.0.166:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> |
注意配置了还是发布项目到私服失败,原因为没有权限
配置权限在settings.xml
<server> <id>user-snapshots</id> <username>deployment</username> <password>deployment123</password> </server> <server> <id>user-release</id> <username>deployment</username> <password>deployment123</password> </server> |
然后运行发布
clean deploy
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
宿主库——3rd party
假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间。
最后点击上传
3.1索引更新
(1) 在线更新索引
安装配置完成Nexus后,电脑联网状态下,Nexus会自动下载索引文件。下载好的索引文件存放在目录:sonatype-work\nexus\indexer
(2) 手动更新索引
网络环境不佳,或者在线更新有问题时,可以选择手动添加索引方式。
到http://repo.maven.apache.org/maven2/.index/上下载:
到http://search.maven.org下载特定解压文indexer-cli-5.1.1.jar
把这几个文件放在同一个文件路径下面,从cmd进入到这个路径里,输入命令:
nohup java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.613.gz -d indexer & |
执行完之后,把indexer文件夹下的所有内容都复制到%nexus-home%\sonatype-work\nexus\indexer\central-ctx下面。
重新启动nexus,进入管理界面,选择central->Browse Index,就看到更新的索引了。
注意:nexus是需要重新启动的,我是在做上面的所有步骤之前,先停掉nexus,等上面四个步骤完成之后,再启动nexus的。
仓库迁移
Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由nexus/conf/nexus.properties配置文件指定。
仓库迁移需要两个过程:备份和还原
备份仓库:将sonatype-work文件夹整体备份即可,也可以选择只备份最重要的两个文件夹索引(indexer)和仓库(storage)
还原仓库:将备份好的sonatype-work文件拷贝到新的服务器中。然后修改nexus/conf/nexus.properties配置文件,重新指定仓库的目录。
如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作!