ネクサスインストールと使用

1はじめに

最近のプロジェクトは、独自のパッケージをアップロードするには、管理チームのメンバーを容易にするためのmaven PW、後者を構築する必要があるので、我々は、構築するネクサスPWを使用することを決めた良いネクサスアドレスを構築します

2.準備

アリクラウドサーバECS 1コアCPU 2Gメモリ(注:2Gの最小値、または実行エラー)

clipboard.png

3、インストールを開始

3.1 Javaのインストール

Javaのインストールオンライン記事多くが、以下のように、私は、自分自身のシェルファイルがインストールされていることを書きました:

#!/bin/bash

# jdk install
# 请将下载的jdk-xxx-linux-xxx.tar.gz包与此脚本放置到同一目录
# 授予此脚本可执行权限(chmod +x install_jdk.sh)
# 在终端执行此脚本开始安装(./文件名) # 注意:不可有多个版本的jdk包! # 为了使配置的环境变量生效,安装完成后你应该重新登陆。 jvmpath=/usr/local/java # 不存在 if [ ! -d "$jvmpath" ]; then echo "正在创建$jvmpath目录" sudo mkdir $jvmpath echo "目录$jvmpath创建成功" fi jdkfile=$(ls | grep jdk-*-linux-*.gz) jdkdirname="jdk1.8.0_201" if [ ! -f "$jdkfile" ]; then echo "正在下载jdk请稍等..." wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz" fi jdkfile=$(ls | grep jdk-*-linux-*.gz) if [ -f "$jdkfile" ]; then sudo tar -zxvf $jdkfile -C /usr/local/java/ echo "安装JDK成功" echo "配置环境变量" mv ~/.bashrc ~/.bashrc.backup.java cat ~/.bashrc.backup.java >> ~/.bashrc echo "PATH=\"$PATH:$jvmpath/$jdkdirname/bin\"" >> ~/.bashrc echo "JAVA_HOME=$jvmpath/$jdkdirname" >> ~/.bashrc echo "CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar" >> ~/.bashrc source ~/.bashrc echo "配置环境成功" echo "测试是否安装成功" java -version echo "安装成功" fi

シェルのドキュメントの実装、次のように:

clipboard.png

3.2インストール達人

Mavenのあなたがそれを見るために記事を見つけるために私のオンライン行くことができます使用しない場合、私はまた、あなた自身を記述するシェルファイルをインストールし、ここに私のシェルファイルです。

#!/bin/bash

# maven install

mvnpath=/usr/local/maven
# 不存在
if [ ! -d "$mvnpath" ]; then echo "正在创建$mvnpath目录" sudo mkdir $mvnpath echo "目录$mvnpath创建成功" fi #apache-maven-3.6 echo "正在下载maven安装包,请稍等..." wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://211.162.31.136/files/71480000031E20AE/mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz" mvnfile=$(ls | grep apache*maven-*.gz) if [ -f "$mvnfile" ]; then #这个名字其实就是mvn .tar.gz解压之后的文件夹的名字 mvndirname="apache-maven-3.6.0" #不能加 用'zxvf' 加了 z 就创建了包里面的apace* 文件夹,而我们只要把apace*文件夹下的文件全部解压到 mvnpath里面就好 tar zxvf $mvnfile -C $mvnpath echo "安装maven成功" echo "配置环境变量" mv ~/.bashrc ~/.bashrc.backup.mvn cat ~/.bashrc.backup.mvn >> ~/.bashrc echo "PATH=\"$PATH:$mvnpath/$mvndirname/bin\"" >> ~/.bashrc echo "MAVEN_HOME=$mvnpath/$mvndirname" >> ~/.bashrc source ~/.bashrc echo "配置环境成功" echo "测试是否安装成功" mvn -v echo "安装成功" else echo "没有找到maven文件" fi 

シェルのドキュメントの実装、次のように:

clipboard.png

3.3インストールのネクサス

ネクサス私もシェルファイルがインストールされて使用しますが、我々はまだ手動でいくつかの設定を設定する必要があるが、以下では、インストールシェルファイルは、次のとおりです。

#!/bin/bash
#判断是否是roo用户
if [ $(id -u) != "0" ]; then echo "Error:You must be root to run this script" fi #每次使用只需修改自定义内容即可 #自定义用户名和组 Group_Name="nexus" User_Name="nexus" #自定义nginx变量 Install_Path="/usr/local/nexus" Version="nexus-3.15.0-01" Package_Type=".tar.gz" Package=$Version$Package_Type #创建/usr/local/nexus目录 #mkdir /usr/local/nexus if [ -e $Install_Path ] then echo " $Install_Path 目录已经存在." echo " $Install_Path Directory Already Exists." else echo " $Install_Path 目录正在创建." mkdir $Install_Path fi #下载nexus 文件 Setup_path="/root/" cd $Setup_path wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.15.0-01-unix.tar.gz Group_User(){ egrep "^$Group_Name" /etc/group >& /dev/null if [ $? -ne 0 ] then echo "nexus 用户组正在添加." groupadd $Group_Name else echo " The $Group_Name user group already exists." echo "nexus 用户组已经添加." fi #判断nexus用户是否存在 egrep "^$User_Name" /etc/passwd >& /dev/null if [ $? -ne 0 ] then echo "nexus 用户正在添加." useradd -g $Group_Name $User_Name else echo "nexus 用户已经添加." echo " The $User_Name user already exists." fi } Group_User # 设置/usr/local/nexus 目录所属组和用户是nexus chown -R nexus:nexus $Install_Path #判断文件是否存在 if [ -e $Setup_path$Version$Package_Type ] then echo "$Package The Package exists." else echo "$Package The package does not exist." fi cd $Setup_path #解压nexus包到/usr/local/nexus tar -zxvf $Package -C $Install_Path echo '设置环境变量' mv ~/.bashrc ~/.bashrc.backup.nexus cat ~/.bashrc.backup.nexus >> ~/.bashrc echo "NEXUS_HOME=$Install_Path/$Version" >> ~/.bashrc echo "PATH=\"$PATH:$NEXUS_HOME/bin\"" >> ~/.bashrc # 切换nexus用户 su nexus echo '接下来配置:1、vim bin/nexus.rc run_as_user="nexus"'

インストールが完了したら、我々は/usr/local/nexus/nexus-3.15.0-01/bin下ネクサスファイルのディレクトリを変更する必要があります

# 设置本地jdk目录
INSTALL4J_JAVA_HOME_OVERRIDE="/usr/local/java/jdk1.8.0_201"

その後、次のように我々は、同じディレクトリnexus.rcファイルを持っています

# 指定用户是nexus而不是root,如果是root会出现警告!
run_as_user="nexus"

わかりましたので、今インストールされ、我々は、デフォルトのポートは8081であることに注意して、次のウェブサイトを訪問し、口座番号:管理者パスワード:admin123

clipboard.png

3.4無料アプリクラウドアリSSL証明書

clipboard.png

監査のために待機した後に設定、nexus.awbeci.com、およびダウンロードが成功した後、証明書をnginxのバージョンを選択:成功した購入後、私はここにあるドメイン名を設定することです

clipboard.png

clipboard.png

ダウンロードが完了した.zipアーカイブされた後、我々は、サーバーにアップロードし、次のコマンドを使用します。

scp your-cert.zip root@your-server-ip:/your-server-directory

アップロードが成功した後、私たちは、次のステップを待っています。

3.5と、nginxのプロキシネクサス8081ポートをインストールHTTPSアクセスを設定

サイトへのアクセスは、ポートが8081であるとき、私はポート80アクセスを使用したいので、私たちはnginxの80ポートエージェント8081を使用し、HTTPSアクセスを設定します

次のように私たちは、ファイルをインストールするには、シェルを介して、またはnginxのインストール

#!/bin/bash
#判断是否是roo用户
if [ $(id -u) != "0" ]; then echo "Error:You must be root to run this script" fi #每次使用只需修改自定义内容即可 #自定义用户名和组 Group_Name="nginx" User_Name="nginx" #自定义nginx变量 Install_Path="/usr/local/nginx" Package_Type=".tar.gz" Version="nginx-1.15.8" Package=$Version$Package_Type Setup_path="/root/" RPM="nginx" #创建/usr/local/nginx目录 #mkdir /usr/local/nginx if [ -e $Install_Path ] then echo " $Install_Path 目录已经存在." echo " $Install_Path Directory Already Exists." else echo " $Install_Path 目录正在创建." mkdir $Install_Path fi #下载nginx 文件 cd $Setup_path wget http://nginx.org/download/nginx-1.15.8.tar.gz #安装依赖关系 yum group install "Development Tools" "Server Platform Deveopment" yum install -y curl openssl-devel pcre-devel Group_User(){ egrep "^$Group_Name" /etc/group >& /dev/null if [ $? -ne 0 ] then echo "nginx 用户组正在添加." groupadd $Group_Name else echo " The $Group_Name user group already exists." echo "nginx 用户组已经添加." fi #判断nginx用户是否存在 egrep "^$User_Name" /etc/passwd >& /dev/null if [ $? -ne 0 ] then echo "nginx 用户正在添加." useradd -g $Group_Name $User_Name else echo "nginx 用户已经添加." echo " The $User_Name user already exists." fi } Group_User #判断文件是否存在 if [ -e $Setup_path$Version$Package_Type ] then echo "$Package The Package exists." else echo "$Package The package does not exist." fi #编译安装nginx cd $Setup_path #解压nginx包到/usr/local/nginx tar -zxvf $Package -C $Install_Path cd $Install_Path cd $Version configure_opts=( --prefix=$Install_Path --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module ) ./configure ${configure_opts[@]} if [[ $? -eq 0 ]] then make && make install else echo "编译失败,请重新编译" && exit 1 fi #添加Nginx命令到环境变量 cat >/etc/profile.d/nginx.sh <<EOF export PATH=/usr/local/nginx/sbin/:$PATH EOF source /etc/profile #启动服务 /usr/local/nginx/sbin/nginx ss -tnlp | grep nginx 

インストールが正常に完了した後、我々はに証明書の.zipファイルのコピーをアップロードする手順/rootは次のよう、フォルダ、および抽出します。

# 创建ssl文件夹
mkdir -p /usr/local/nginx/cert

# 把上一步的.zip证书解压并复制到ssl文件夹下
unzip /root/your-cert-package.zip

# 解压之后应该是两个文件.pem和.key # 复制.crt和.key文件到ssl目录下 cp your-cert.crt your-cert.key /usr/local/nginx/cert

セットアップしたら、次に我々は、コンフィギュレーション持って/usr/local/nginx/conf/nginx.conf次のようにファイルを:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; client_max_body_size 100m; client_header_timeout 1m; client_body_timeout 1m; proxy_connect_timeout 18000; ##修改成半个小时 proxy_send_timeout 18000; proxy_read_timeout 18000; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name nexus.awbeci.com; return 301 https://nexus.awbeci.com$request_uri; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8081; #代理8081端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } } # HTTPS server # server { listen 443 ssl; server_name nexus.awbeci.com; ssl_certificate /usr/local/nginx/cert/nexus.awbeci.com.pem; ssl_certificate_key /usr/local/nginx/cert/nexus.awbeci.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8081; #代理8081端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } } }

这样就成功的配置好了,现在我们重启下nginx,并访问nexus.awbeci.com网站看看

# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

clipboard.png

4、开始使用Nexus

4.1 Nexus介绍

这里有一篇文章写得非常好,大家可以看看,我就不特别详细的写介绍了,主要还是告诉你们怎么结合项目使用。

4.2 创建Blob Stores

clipboard.png

4.3 创建User

clipboard.png

4.4 创建阿里云的代理仓库

clipboard.png

然后再public组里面将这个aliyun-proxy仓库加入,排在maven-central之前即可

clipboard.png

4.5 创建Host仓库 策略是release

clipboard.png

4.6 创建Host仓库 策略是snapshots

clipboard.png

创建好之后我们再来Public设置下优先顺序,把刚才加的两个仓库放到aliyun-proxy前面

clipboard.png

创建完仓库预览

clipboard.png

4.7 配置本地maven settings.xml

提示:两种配置方法,一种是直接配置maven目录下的conf下的settings.xml文件,另外一种是复制该文件到用户目录下的.m2目录,两种方法配置效果是一样的,看个人喜好了,加载顺序是.m2下的settings.xml目录接着是maven config目录下的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"> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> <!--这里配置我们刚才创建的user用户所对应的releases--> <server> <id>releases</id> <username>user</username> <password>123456</password> </server> <!--这里配置我们刚才创建的user用户所对应的Snapshots--> <server> <id>Snapshots</id> <username>user</username> <password>123456</password> </server> </servers> <mirrors> <!-- <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> --> <!--这里配置我们线上的public仓库就好--> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>https://nexus.awbeci.com/repository/maven-public/</url> </mirror> </mirrors> </settings> 

4.8 配置要上传到nexus项目pom.xml文件

    <packaging>jar</packaging>
    <distributionManagement> <!--配置线上releases仓库地址,只要是正式版本都会上传到该地址(注意要和settings.xml文件里面的配置名称相同)--> <repository> <id>releases</id> <url>https://nexus.awbeci.com/repository/awbeci/</url> </repository> <!--配置线上Snapshots仓库地址,只要是快照版本都会上传到该地址(注意要和settings.xml文件里面的配置名称相同)--> <snapshotRepository> <id>Snapshots</id> <url>https://nexus.awbeci.com/repository/awbeci-snapshots/</url> </snapshotRepository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> <executions> <execution> <id>deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> 

4.9 编辑并发布jar包

mvn clean && mvn deploy -DskipTests=true

执行完成后,我们到线上看看是否上传成功

clipboard.png

clipboard.png

可以看到不管是release版本还是snapshot版本都上传并发布成功

4.10 测试发布的包

自己新建一个maven项目,然后引入我们刚才发布的release包

<dependency>
    <groupId>com.awbeci</groupId> <artifactId>awbeci-core</artifactId> <version>1.0.8-SNAPSHOT</version> </dependency>

clipboard.png
执行该代码,如下所示:

clipboard.png

测试成功!!!

4.10 上传第三方包

有两种方式,一种是命令

mvn deploy:deploy-file \
    -DgroupId=<group-id> \
    -DartifactId=<artifact-id> \
    -Dversion=<version> \
    -Dpackaging=<type-of-packaging> \
    -Dfile=<path-to-file> \
    -DrepositoryId=<server-id-settings.xml> \
    -Durl=<url-of-the-repository-to-deploy>

另外一种是使用Nexus上传

clipboard.png

两种方式结果都是一样,就看你偏向哪种了。

5、总结

1)服务器内存刚开始配置是1CPU 1G 内存,nexus start运行之后报错,升级服务器为2G内存之后就没问题了

2)nexus 默认是8081端口,我们可以修改文件/usr/local/nexus/nexus-3.15.0-01/etc/nexus-default.properties

## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
# 设置成自己想要的端口
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml nexus-context-path=/ # Nexus section nexus-edition=nexus-pro-edition nexus-features=\ nexus-pro-feature

あなたがネクサスを開始することはできませんので、ポート80に直接置くことができないことは注目に値するので、私たちは8081ポートを介してプロキシポート80をnginxの。

3)ネクサスメモリ構成はです /usr/local/nexus/nexus-3.15.0-01/bin/nexus.vmoptions

-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false

4)自分自身を作成するための最良のネクサスユーザーは、ネクサスを開始するには、rootユーザーを使用していないそうでない場合は警告が表示されます

WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ Starting nexus

5)ネクサスを起動します。

/usr/local/nexus/nexus-3.15.0-01/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}

6、参照

  1. MavenのPW記録動作環境構築Nexus3.x
  2. ネクサス3.xのLinux環境を構築する(ハンズオン)ピット列ツアー
  3. Centos7.3取り付けネクサス3.14.0-04
  4. MavenのPW(Centos7環境)のnexus3バージョンをビルド
  5. Gitlab +ネクサスMavenの展開
  6. Linuxは、MavenのPWガイドを構築Nexus3.x使用しています
  7. PW nexus3.x構築とMavenを使用
  8. centos7ネクサスMavenのPWを構築
  9. centos7ネクサスMavenのPWを構築
  10. Mavenのネクサス
  11. Mavenを持つネクサスの統合は、専用倉庫を建設します
  12. ネクサス最大ファイルディスクリプタ
  13. MavenのPW nexus3.x環境設定
  14. MavenのPW -Nexusを構築

おすすめ

転載: www.cnblogs.com/grimm/p/11404862.html