Nexus は、ローカルの内部倉庫のメンテナンスと外部倉庫へのアクセスを大幅に簡素化する強力な Maven 倉庫マネージャーです。、yum、pypi、npm、docker、nuget、rubygems などのさまざまなプライベート ウェアハウスの作成にも使用できます。
インストール
JDK環境をインストールする
# tar -xzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_211/
export JRE_HOME=/usr/loca/jdk1.8.0_211/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# source /etc/profile
nexus インストール パッケージをダウンロードする
# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
# mkdir /opt/nexus
# tar -xzf nexus-3.16.1-02-unix.tar.gz -C /opt/nexus
# useradd nexus #以nexus用户运行
# chown -R nexus.nexus /opt/nexus
nexus解压后的两个文件
nexus-xxx nexus运行需要的文件,如运行脚本、依赖jar包
sonatype-work 该目录包含nexus生成的配置文件、日志文件、仓库文件等
### 优化配置
1) 配置运行用户
# cd /nexus/nexus.x.x.x/bin/
# vim nexus.rc
run_as_user="nexus" ----取消注释
2)可以手动配置jdk的路径
如果不配置的话,会使用默认的JAVA_HOME的环境变量
# cd /nexus/nexus.x.x.x/bin/
# vim nexus
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_144 #第14行
3)修改端口
一般使用默认的端口
# cd /nexus/nexusx.x.x.x/bin
# vim nexus-default.properties
4)配置存储及日志位置
一般不做修改,使用默认
# cd /nexus/nexusx.x.x.x/bin/
# vim nexus.vmoptions
構成ファイルを変更した後、実行します
# sudo su - nexus
# cd /opt/nexus/nexus.x.x.x/bin
# ./nexus run & #后台运行
# 使用web页面进行设置代理仓库
http://localhost:8081
bin目录下执行执行 ./nexux start 命令启动。
脚本涵盖:./nexus {
console | start | stop | restart | status | dump}
(3.X启动 nohup ./bin/nexus run > logs/nexus.log 2>&1 &)
后http://ip:port访问成功即可。
若启动成功,访问失败大概率是防火墙拦截导致,详见配置项四。
默认账号和密码:admin/admin123(3.X密码在data/admin.password)
プライベートサーバーの使用
プライベートサーバーに関する専門用語
hosted,本地仓库(也叫宿主仓库),通常我们会部署自己的构件到这一类型的仓库或者是第三方的包(如:oracel的)。
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
Hosted有三种方式:Releases、Snapshot、Mixed
Releases: 一般是已经发布的Jar包
Snapshot: 未发布的版本
Mixed:混合的
プロキシ リポジトリの作成 プロキシ ウェアハウス
新しいカスタム ウェアハウスの作成
[リポジトリの作成] をクリックし、maven2 (ホスト型)
カスタム グループ リソース ライブラリのタイプを選択します
3 つは Maven プロジェクトで Nexus プライベート サーバーを使用します
3.1 ロールの作成
1 つのロールの下に複数のユーザーがいます。そのロールでのみユーザー権限を割り当てることができます。
3.2 ユーザーの作成
正常に作成されました
3.3 mavenのsetting.xmlファイル構成
: jar パッケージのダウンロード用の Maven ウェアハウスを定義し、デプロイメント サーバーを定義します。
ただし、ユーザー名やパスワードなどの一部の構成は、ビルド サーバーの settings.xml に保存されます。
id: distributionManagement ライブラリ ID と一致させるために使用されるサーバーの ID の方が重要です。
username、password: このサーバーへのログインに使用されるユーザー名とパスワード
privateKey、passphrase: 秘密キーとパスフレーズを設定します
filePermissions、directoryPermissions: ライブラリ ファイルまたはディレクトリが作成された後、アクセスするには権限を使用する必要があります。664 や 775 などの UNIX ファイル ライセンスを参照して、
ミラー ライブラリを示し、ライブラリのミラー イメージを指定し、それを使用して他のライブラリを追加します。ミラーはインターセプタと同等で、Maven のリモート リポジトリへの関連リクエストをインターセプトし、リクエスト内のリモート リポジトリ アドレスをミラーで設定されたアドレスにリダイレクトします。
id、name: ミラーを区別するために使用される唯一の記号
url: ミラーの URL
MirrorOf: このミラーが指すサービス ID
Maven でプライベート サーバーを構成し、setting.xml を編集します。Maven
の中央ウェアハウス アドレスのデフォルトは: https://repo.maven.apache.org/maven2/ です。settings.xml ファイルを変更することで、デフォルトの中央ウェアハウス アドレスを変更できます。
<?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">
<!--本地仓库-->
<localRepository>D:/maven/repository</localRepository>
<interactiveMode>true</interactiveMode>
<offline>false</offline>
<!--配置权限,使用默认用户-->
<servers>
<server>
<!--这是server的id(注意不是用户登陆的id),该id与repository元素的id相匹配。 -->
<id>maven-releases</id>
<username>admin</username>
<password>2321035705Ma</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>2321035705Ma</password>
</server>
<server>
<id>myself_group</id>
<username>admin</username>
<password>2321035705Ma</password>
</server>
</servers>
<mirrors>
<!--阿里云镜像-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus-group</id>
<url>http://localhost:8081/repository/nexus-group/</url>
<!-- <releases><enabled>true</enabled></releases>告诉Maven可以从这个仓库下载releases版本的构件-->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<!-- 如果是配置了repositories,那么你会发现在mvn在下载依赖的时候,一部分从阿里云下载,一部分还是从默认的仓库(https://repo.maven.apache.org )下载-->
<pluginRepository>
<id>nexus-group</id>
<url>http://localhost:8081/repository/nexus-group/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
<!--激活profile-->
<activeProfiles>
<!--将所有repositories以及pluginRepositories元素放到这个profile中,然后,使用<activeProfiles>元素自动激活该profile。这样,你就不用再为每个POM重复配置仓库-->
<activeProfile>nexus</activeProfile>
<activeProfile>jdk-1.8</activeProfile>
</activeProfiles>
</settings>
3.4 デプロイされたウェアハウスは、POM の distributionManagement 要素によって定義されます。
リリースされる jar は、mvndeploy で実行できます。
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
3.5 は、POM のリポジトリを使用して依存関係をダウンロードするために使用されます
<repositories>
<repository>
<id>nexus</id>
<url>http://121.4.207.231:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
pypi ウェアハウスを構成する手順:
1. 正規代理店倉庫の設置
2. リモート インデックス アドレスを入力するときは、アドレス: pypi.python.org/ ; Mirrors.aliyun.com ; # 複数の国内リソースを構成します
3. myptpi-hosted の内部使用のためにホストされたウェアハウスを作成する
4. グループ ウェアハウスを作成し、それに公式プロキシ構成を追加します
1. pip を使用する場合、-i を使用してウェアハウス アドレスを指定し、同時に –trusted-host パラメータを使用して信頼できるホストを指定します
pip install -i http://localhost:8081/repository/pypigroup/simple/ --no-cache-dir -r requirements.txt --trusted-host
2. 構成ファイルでプライベートサーバーのアドレスを構成します。構成ファイルのアドレスは ~/.pip/pip.conf です。存在しない場合は、このファイルを追加します。設定ファイルの内容は以下の通りです
[global]
index-url=nexus.menghuanhua.com:8081/repository/df-pipy-public/simple/
[install]
trusted-host=nexus.menghuanhua.com