ボーエン概要:
、Mavenの概要
1)Mavenの機能:
視点操作および保守要員の換算2)Mavenの使用シナリオ():
3)Mavenのリポジトリ
第二に、展開のMaven
1)構成JDK環境
2)Mavenの展開する
第三に、ネクサスの展開をPW
1)ネクサスはじめ
2)ネクサスの展開
4は、Mavenは設定ネクサスPW、ネクサスPW構築するためのリモートリポジトリのセットアップ費
1)メイン設定ファイルのMavenの変更
2)の試験にMavenプロジェクトの作成
3)の構成の認定は、パックされますネクサスにアップロード項目
のmaven-リリースウェアハウスにアップロードされた4)
5)は、サードパーティのMavenをアップロード
A、Mavenの紹介
Mavenのは、無料のオープンソースプロジェクトの下では、Apache Software Foundationの一部であり、クロスプラットフォームのプロジェクト管理ツールで、プロジェクトを管理するプロジェクトオブジェクトモデル(POM)の概念と呼ばれるものMavenの使用は、すべてのプロジェクトの構成情報が定義されていますファイル内のpom.xmlをで呼ばれます。プロセスは、主に決意をダウンロードするコードのニーズに環境プロジェクトの依存関係プロジェクトベースのJavaプラットフォーム、依存関係の管理やプロジェクト情報管理の建設は、自動的にコードに展開することができる機能のMavenのミラーリポジトリから環境に依存し、通常よりゆっくりダウンロードしてください、企業は、建築プロジェクトは、アクセス速度を向上させるために、ネクサスサーバー環境を頼っ保存するために、会社ネクサス(PW)内に設置されます。
POMプロジェクトオブジェクトモデルは、Mavenプロジェクトは、プロジェクトに関する基本的な情報を含むXMLファイルなので、上のプロジェクト、声明プロジェクトの依存関係とを構築する方法について説明し、作業の基本単位です。
タスクや目標を実行する場合は、MavenのPOMは、現在のディレクトリを検索します。読むPOMは、必要な設定情報を取得して、ターゲットを実行します。
プロジェクトの依存関係、プラグイン、業績目標、プロジェクトプロファイルを構築するために、プロジェクトのリリース、プロジェクト開発リスト、メーリングリスト関連情報:POMは、以下の構成を指定することができます。
1)Mavenの特徴:
; 1)標準化及びカタログ計画されたJavaプロジェクトのソースコードは、ユニットテストコード、リソース、JARパッケージの1 mavneモデル
プロジェクト、一貫性のないバージョン、バージョンの衝突の間の解決の依存関係2)2;
3)3。合理的な管理の仕組みをjarファイル。
2)ビュー動作および保守要員の点からMavenの使用シナリオ():
1)元のプロジェクトのjarパッケージを手動でコピーして、次のWEB-INF / libにプロジェクトに貼り付け、およびヘルプがMavenのしなければならない、あなただけの倉庫内のjarパッケージの保存、ファイルのみを参照するために必要なプロジェクトを使用する必要があることができます必要はありませんプロジェクトへの複製コピー;
2)元のプロジェクトに必要なJARパッケージを事前にダウンロードされ、ジャーMavenは自動的にネットワーク接続された状態に必要なパッケージをダウンロードします。まず、インターネット上でのダウンロードのためにそれを見つけることができない、地元の倉庫を見つける;
)3ジャージャーパッケージで元のプロジェクトは、他のパッケージに依存して手動で案内されなければならない、とMavenは自動的に依存するJARパッケージガイドがでてくることでしょう。
4 )元のプロジェクトは、プロジェクトでは、プロジェクトで、ヘルプMavenは複数のプロジェクトにプロジェクトを分割することができます。
プロジェクトのビルドプロセスが含ま:→[プロジェクト]→[パッケージ]展開プロジェクトの手順、これらの6つのステップ[クリーン・プロジェクト]→[プロジェクト]→[コンパイル]→[テストレポートを生成するためのテストプロジェクト]は、完全なプロジェクトを構築することですプロセス。
3)Mavenのリポジトリ
Mavenのの専門用語では、倉庫の場所を指し、Mavenのリポジトリプロジェクトは、サードパーティライブラリ、倉庫が呼び出されたライブラリの位置に依存しています。Mavenの依存関係任意の出力、プラグまたはプロジェクトのビルドでは、メンバーを呼び出すことができます。
Mavenのリポジトリは、それがすべてのJARファイル(WAR、ZIP、POMなど)を置く場所である私たちは、メンバー(主にジャー)を管理することができます。
リモートからローカル、中央、:Mavenは3種類がありますリポジトリ。
1)ローカルリポジトリ
ローカルリポジトリをMavenの、とMavenのインストール後に作成されません、それが唯一作成されたときのmavenコマンドの最初の実行。
Mavenの、Mavenを実行する際に必要な構成要素は、ローカル倉庫から直接取得されます。いいえローカルリポジトリた場合、それは最初のローカル倉庫にリモートリポジトリのアーティファクトからダウンロードしようとした後、ローカルリポジトリのコンポーネントを使用します。
デフォルトでは、LinuxまたはWindowsのかどうか、自分のユーザーディレクトリ内の各ユーザーは、パス名.m2 /レポジトリ/リポジトリのディレクトリがあります。
2)中央倉庫
Mavenの中央リポジトリは、一般的に使用されるライブラリが多数含まれているコミュニティのMavenリポジトリによって提供されます。
Mavenは内蔵のリモート公開リポジトリ:http://repo1.maven.org/maven2。
中央倉庫は、最も人気のあるオープンソースのJavaコンポーネントだけでなく、ソース、著者情報、SCM、情報、ライセンス情報が含まれています。一般的には、単純なJavaプロジェクト依存コンポーネントは、こちらからダウンロードすることができます。
3)サードパーティの倉庫
また、また、PWとして知られている内部中央倉庫、として知られているサードパーティの倉庫、。
PW:通常、会社自体によって設定されたが、唯一の企業内で共有されます。それは内部コラボレーションアーカイブ成分として使用することができ、それは、(中央倉庫へのアクセスを減少させるPWを使用して)外部アクセス及びダウンロードの頻度を減らす、公共図書館ミラーキャッシュとして使用することができます。
:詳細については、このドキュメントの会場もMavenのチュートリアル
第二に、Mavenを展開
Java環境に依存するMavenの必要性をインストールする、それが展開JDK環境を有効にする必要があります!
注:この記事で使用するすべてのソースパッケージには、ネットワークディスクから私はリンクを提供しているダウンロードします
1)設定JDK環境
[root@maven ~]# rpm -qa | grep jdk //查询本机默认JDK环境
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
copy-jdk-configs-3.3-2.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
[root@maven ~]# yum -y remove java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
[root@maven ~]# yum -y remove java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
//将原本的jdk-headless包卸载
[root@maven ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local //将提供的JDK软件包进行解压
[root@maven ~]# vim /etc/profile //编写系统环境变量,在末尾添加以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_211 //指定Java安装路径
export JRE_HOME=/usr/local/jdk1.8.0_211/jre //Java运行环境
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar //声明Java中的类,类就是一类事务的属性
export PATH=$JAVA_HOME/bin/:$JRE_HOME/bin/:$PATH //将定义的变量添加到系统环境变量中
[root@maven ~]# source /etc/profile //重新加载系统环境变量文件
[root@maven ~]#java -version //查询支持的Java版本信息
java version "1.8.0_211" //符合要求
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
2)Mavenを展開
[root@maven ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#可直接使用网盘中的apache-maven-3.6.1-bin.tar.gz
[root@maven ~]# tar zxf apache-maven-3.6.3-bin.tar.gz -C /usr/src
[root@maven ~]# mv /usr/src/apache-maven-3.6.3/ /usr/local/maven
[root@maven ~]# vim /etc/profile #添加以下内容
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
[root@maven ~]# source /etc/profile
[root@maven ~]# mvn -v #出现下面内容就部署成功了(因为这是二进制的方式部署)
Apache Maven 3.6.3 (cecedd343002696d0abb0b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_211/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
1)アリクラウド・ウェアハウスのアドレスを使用するように設定
公式サイトMavenのアドレスを使用するため。アリクラウドが提供する直接変更Mavenのリポジトリアドレスので、遅いダウンロード!
[root@maven ~]# vim /usr/local/maven/conf/settings.xml
#定位到158行,填写一下内容
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors> #必须写在这个标签里面
#mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径
#<mirrorOf>central</mirrorOf>里是要替代的仓库的id。代理原有仓库,如果填写*表示替换所有仓库
2)テストにプロジェクトをビルドします
[root@maven ~]# mkdir /tmp/testdir
[root@maven ~]# cd /tmp/testdir/
#执行下面命令进行测试
[root@maven testdir]# mvn archetype:generate -DgroupId=com.lzj.maven.quickstart -DartifactIdk=testapp -DarchetypeArtifactId=maven-archetype-quickstart
#创建一个maven项目(Java类型),可加-DinteractiveMode=false取消交互过程
...........................#省略部分内容
Define value for property 'artifactId': testapp #需手动指定项目名称,可自定义,接下来保持默认即可!
[INFO] BUILD SUCCESS #当出现这行提示信息,则表示构建成功
#上述命令解释如下:
# archetype:generate:创建一个简单的java项目;
# archetype 也就是原型,是一个 Maven 插件,准确说是一个项目模板,它的任务是根据模板创建一个项目结构。
#使用 quickstart 原型插件创建一个简单的 java 应用程序
# -DgroupId:组织名,公司网址的反写(反向域名)+项目名称;
# -DartifactIdk:项目名或者模块名;
# - DarchetypeArtifactId:指定 ArchetypeId,maven-archetype-quickstart,创建一个简单的 Java 应用;
# -DinteractiveMode: 是否使用交互模式。
3)パラメータPOMのファイルを生成します
現在のディレクトリに生成されたコンテンツ:
[root@maven testdir]# ls #上述命令执行成功后,会在当前目录下生成以项目名称命名的目录
testapp
[root@maven testdir]# cd testapp/ #进入生成的目录
[root@maven testapp]# ls #查看目录下生成的文件
pom.xml src
[root@maven testapp]# cat pom.xml #pom文件参数解释
project: 根,这是对Project添加一些根元素的约束信息
modelversion:指定当前maven模型的版本号
grouopId:应该是公司名或者组织名。一般来说groupID有三个部分组成,每个部分之间以“.”分隔,第一部分是项目的用途,比如用于商业的就是com,用于非商业盈利性组织的就是org,第二部分是公司名,比如tentxun/baidu/alibaba,第三部分是你的项目名
artifactId:可以认为是maven构建的项目名,比如你的项目中有子项目,就可以使用“项目名-子项目的命名方式
packaging: 指定生成的格式(jar/war/rar/pom/ear)
version:版本号,SNAPSHOT意味快照,说明该项目还在开发中,是不稳定的版本
name:项目的名称, Maven产生的文档用
url:项目主页的url,Maven产生的文档用
dependencies标签:指定开发构建(jar包)
JUnit是一个Java语言的单元测试框架
また、ユーザのホームディレクトリの下に地元の倉庫を生成します。
[root@Maven testdir]# ls ~/.m2/repository/
antlr asm commons-codec commons-collections commons-io commons-lang jdom net org
4)Mavenのプロファイル
setting.xml:へMavenのプロファイル名。これは、2つの場所に保存されています
1)#1 /usr/local/maven/conf/settings.xmlインストールディレクトリ;
2)〜/ .m2 /#のsettings.xmlユーザのホームディレクトリ。
前記インストール構成とグローバルディレクトリ構成、ユーザ構成ディレクトリ構成は、ユーザと呼ばれています。両方が存在する場合、その内容はマージされ、ユーザレンジのsettings.xml優先されます。
デフォルトのユーザープロファイルディレクトリは、ユーザーディレクトリへのMavenのsettings.xmlのインストールディレクトリをコピーすることができ、存在しません。
共通上のsettings.xmlファイル構成として、以下の改正:
1)の変更をローカルリポジトリストレージ・パスは、デフォルト値が自分のニーズに変更のsettings.xml localrepositoryディレクトリに〜/ .m2 /リポジトリ利用可能であり、
2)サーバ構築であれば理由ネットワーク障害やセキュリティの問題リモートリポジトリに接続することができない、真のオフラインプロパティセットを設定し、オフラインモードを必要と、デフォルトではfalseにある;
。3)、中央ウェアハウス・サーバーを変更する設定ファイルのメモを変更し、ミラーアドレスを追加または変更する;
4)提供プロキシアドレス、Mavenのエージェントを達成するために、プロキシサーバーを定義し、設定ファイルのプロキシラベルを変更します。
中央のウェアハウス・サーバーが海外にあるので、家庭、その後、よりゆっくりダウンロードし、国内のユーザーは、倉庫の住所をaliyunことをお勧めします。
5)Mavenの一般的なコマンド
[root@maven testapp]# pwd #确认当前目录是之前构建的项目下
/tmp/testdir/testapp
[root@maven testapp]# mvn compile #编译(在编译的过程中,可以看到使用的是阿里云的仓库)
[INFO] BUILD SUCCESS #只要在输出信息的最后几行中看到该行,则表示执行成功
#以后所有命令都一样,只要最后几行有上述信息,就表示执行成功
[root@maven testapp]# ls #会看到目录下会生成新的目录target
pom.xml src target
# target:打包输出目录,如打包好的jar或war文件;
# target/classes:编译输出目录;
[root@maven testapp]# mvn test #测试命令
[root@maven testapp]# ls target/test-classes/
com
# target/test-classes:测试编译输出目录
[root@maven testapp]# mvn clean #清理命令(就是将编译和测试生成的目录删除)
[root@maven testapp]# ls # target目录已经不在了
pom.xml src
[root@maven testapp]# mvn package #打包命令
[root@maven testapp]# ls target/ #会生成一个jar包
classes surefire-reports
maven-archiver testapp-1.0-SNAPSHOT.jar
maven-status test-classes
[root@maven testapp]# mvn install #安装命令(作用是将压缩文件jar包或者war包上传到本地仓库)
[root@maven testapp]# ls ~/.m2/repository/com/lzj/maven/quickstart/testapp/1.0-SNAPSHOT/
#查看上传的包
maven-metadata-local.xml testapp-1.0-SNAPSHOT.jar
_remote.repositories testapp-1.0-SNAPSHOT.pom
# 直接使用maven install命令对项目进行上传到本地仓库,
# 那么前面所有的步骤将会自动执行,比如源代码的编译、打包等等。
[root@maven testapp]# mvn deploy #发布(将包上传到私服,现在我这里还没有私服,所以会失败)
ライフサイクル6)MVN命令
以下のように、明確に定義されている建物や特定のプロジェクトのプロセスを配布する手段のライフサイクルの考え方に基づいて、このセンターを建設MAVEN:
ライフサイクルの全体図:
ライフサイクルの詳細な地図を:
Tomcatにウェブ、プレイ戦争パッケージ、および配備を構築するための7)プロジェクト
[root@maven testdir]# mvn archetype:generate -DgroupId=cn.test.testweb -DartifactId=testweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
#构建web项目
#生成的目录结构如下:
[root@maven testdir]# ls testweb/
pom.xml src
[root@maven testdir]# cat testweb/src/main/webapp/index.jsp
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
[root@maven testdir]# cd testweb/ #进入项目目录下
[root@maven testweb]# mvn package #打包为war包
[root@maven testweb]# ls target/ #将会在该目录下生成一个war包
classes maven-archiver testweb testweb.war
#将生成的war包移动到Tomcat的网页根目录(webapps)下,它将自动解压,
#然后即可访问Tomcat测试生成的war包
[root@maven testweb]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
[root@maven testweb]# tar zxf apache-tomcat-9.0.31.tar.gz
[root@maven testweb]# mv apache-tomcat-9.0.31 /usr/local/tomcat #安装tomcat
[root@maven testweb]# mv target/testweb.war /usr/local/tomcat/webapps/ #移动到Tomcat网页根目录
[root@maven testweb]# /usr/local/tomcat/bin/startup.sh #启动Tomcat
[root@maven testweb]# ls /usr/local/tomcat/webapps/ #查看,war包被自动解压了
docs host-manager ROOT testweb.war
examples manager testweb
示すように、モバイル戦争は、ルートディレクトリの下のTomcatのWebをパッケージへのクライアントアクセス:
第三に、ネクサスPWの展開
1)ネクサスはじめに
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。
本地仓库就是我们在maven的setting.xml中配置的本地仓库地址。由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库是maven默认的远程仓库。
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
Nexus的功能:
1)节省外网带宽。大量对于外部仓库的重复请求会消耗带宽,利用私服代理外部仓库,可以消除对外的重复构件下载,降低带宽的压力。
2)加速Maven构建。加速Maven构建。不停地连接请求外部仓库十分的耗时,Maven在执行构建的时候不停地检查远程仓库的数据。利用私服,Maven只检查局域网的数据,提高构建的速度。
3)部署第三方构件。部署第三方构件。当某个构件无法从任何一个外部远程仓库获得。建立私服之后,便可以将这些构件部署到私服,供内部的Maven项目使用。
4)提高稳定性,增强控制。提高稳定性,增强控制。Maven构建高度依赖于远程仓库,因此,当网络不稳定的时候,Maven构建也会变得不稳定,甚至无法构建。私服缓存了大量构建,即使暂时没有网络,Maven也可以正常的运行。
5)降低中央仓库的负荷。降低中央仓库的负荷。使用私服可以避免很多对中央仓库的重复下载,降低中央仓库的压力。
2)部署Nexus
这个软件从官网下载较慢,可从博文开头的网盘链接中获取!
[root@maven ~]# mkdir /usr/local/nexus
[root@maven ~]# tar zxf nexus-3.17.0-01-unix.tar.gz -C /usr/local/nexus/
#启动nexus必须使用nexus用户,不可以使用权限过高的用户,比如root,否则会启动失败
[root@maven ~]# useradd nexus
[root@maven ~]# chown -R nexus:nexus /usr/local/nexus/
[root@maven ~]# cd /usr/local/nexus/
[root@maven nexus]# ls
nexus-3.17.0-01 #这是应用目录
sonatype-work #这是工作目录,存放镜像仓库
#运行内存和工作目录nexus-3.17.0-01/bin/nexus.vmoptions (修改对应字段即可)
#运行监听地址和端口nexus-3.17.0-01/etc/nexus-default.properties
[root@maven nexus]# ln -s /usr/local/nexus/nexus-3.17.0-01/bin/nexus /usr/local/bin/
#创建命令软连接
#切换至nexus用户,并启动nexus服务,如果使用root用户,会因为权限过高而启动失败
[root@maven nexus]# su nexus
[nexus@maven nexus]$ nexus start #启动nexus
Starting nexus
[root@maven nexus]# netstat -anpt | grep 8081 #默认监听8081端口
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 61881/java
启动成功,浏览器进行访问:
[root@maven ~]# cat /usr/local/nexus/sonatype-work/nexus3/admin.password
da8b24ed-8bd2-42c5-864f-858216a21cf4 #复制查看出的密码信息
1)创建角色
如图:
2)创建用户
如图:
3)查看默认仓库类型
如图:
默认的仓库类型介绍:
- group(仓库组类型):又叫组仓库,用于方便开发人员,自己设定的仓库
- hosted(宿主类型):内部项目的发布仓库(内部开发人员发布上去存放的仓库);
- proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值,即被代理的远程仓库的路径);
- virtual(虚拟类型):虚拟仓库(这个基本上用不到);
Public Repositories下的仓库类型:
- 3rd party::无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;
- Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
- Central::用来代理maven中央仓库中发布版本构件的仓库
- entral M1 shadow::用于提供中央仓库中M1格式的发布版本的构件镜像仓库
- Codehaus Snapshots::用来代理CodehausMaven 仓库的快照版本构件的仓库
- Releases::内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;
- Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本;
4)开启release的重复发版权限
开发中需要重复发版,则需要开启release类型仓库的对应权限设置allow redeploy。如下:
5)设置代理仓库(采用阿里云maven仓库)
如图:
阿里云仓库的URL:https://maven.aliyun.com/nexus/content/groups/public/
6)将添加的阿里云Proxy加入默认group中
如图:
保存后,再次刷新页面,即可看到当前的Nexus地址:
关于上述配置的常见使用场景介绍如下:
- (ネクサスは、デフォルトでは確立されています:Mavenの-免除)発行のバージョンの倉庫をリリース。
- スナップショットスナップショットリポジトリテストセンター(ネクサスは、デフォルトでは確立されています:Mavenの-スナップショット)。
- 中央中央倉庫(ネクサスは、デフォルトで確立されている:Mavenのセントラル)。
グループネクサスが一緒に倉庫の種類をもたらし、確立することができます(デフォルトネクサスが確立されています:Mavenの-パブリック)グループについて
- シーン:異なるMavenの呼び出しアドレス構成に配置カスタム新しいプロキシ型倉庫、それぞれ、または新しい統一リポジトリプロキシをカスタマイズするMavenの構成におけるグループ通話アドレスに参加します。
- シーン2:使用Mavenは良いプロキシ倉庫を設立し、設立グループ(Mavenの公開)の構成Mavenの呼び出しアドレスを使用しており、
基本的にシーンとシーン2変更なし、習慣やニーズを開発している会社に従って構成しますすることができます!
四、Mavenの設定ネクサスPW、ネクサスPWを構築するためのリモートリポジトリのセットアップコスト
1)変性マスタプロファイル達人
[root@maven ~]# vim /usr/local/maven/conf/settings.xml
………………………… #省略部分内容
<mirror>
<id>nexus-testconf</id>
<mirrorOf>*</mirrorOf>
<name>nexus testconf</name>
<url>http://192.168.1.7:8081/repository/maven-public/</url>
</mirror>
#上面的URL就是在nexus上查看到的URL
</mirrors>
..........................#省略部分内容
#跳转至260行左右,写以下内容
<profile>
<id>testconf</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://192.168.1.7:8081/repository/maven-public/</url>
<releases>
<enable>true</enable>
</releases>
<snapshots>
<enable>true</enable>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://192.168.1.7:8081/repository/maven-public/</url>
<releases>
<enable>true</enable>
</releases>
<snapshots>
<enable>true</enable>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles> #需在该标签以上进行添加!
..........................#省略部分内容
<activeProfiles>
<activeProfile>testconf</activeProfile> #这里的值一定要和上面profile的ID对应,才可以激活
</activeProfiles>
</settings> #将 <activeProfiles>字段写在settings字段上面
2)テストへのMavenプロジェクトを作成します
まず、次のように、匿名の書き込みネクサスに必要な権限を開きます。
[root@maven ~]# rm -rf ~/.m2/ #先删除本地仓库的缓存
[root@maven ~]# cd /tmp/testdir/
[root@maven testdir]# mvn archetype:generate -DgroupId=cn.ljz.ljzweb -DartifactId=lzjweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
#构建项目,可以看到在构建的过程中使用的是nexus私服地址。
[root@maven testdir]# cd lzjweb/ #进入构建后的项目
[root@maven lzjweb]# mvn package #将项目打包
[root@maven lzjweb]# ls #打包后,会生成target目录
pom.xml src target
Webページを表示します。
3)を設定する認証のネクサスにアップロードし、パッケージのアイテム
[root@maven lzjweb]# vim /usr/local/maven/conf/settings.xml
#搜索“server”字段
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
--> #定位到该行,写入以下内容,大概是124行
<server>
<id>test-nexus</id> #自定义ID
<username>testdevops</username> #刚开始在nexus的web页面添加的用户名ID号
<password>123456</password> #用户名密码
</server>
#修改项目中的pod.xml文件
[root@maven lzjweb]# pwd
/tmp/testdir/lzjweb
[root@maven lzjweb]# ls
pom.xml src target
[root@maven ljzweb]# vim pom.xml #编辑配置文件
.....................#省略部分内容,以下内容是手动添加的
<distributionManagement>
<snapshotRepository>
<id>test-nexus</id> #这里的ID必须和上面settings文件中配置认证的ID一致
<name>Nexus Snapshot</name>
<url>http://192.168.1.7:8081/repository/maven-snapshots/</url>
#上面是修订版本的URL,可在nexus的web界面查看
</snapshotRepository>
<repository>
<id>test-nexus</id>
<name>Nexus releases</name>
<url>http://192.168.1.7:8081/repository/maven-releases/</url>
#上面是发行版本的URL,同样在web界面的Repositories中可以查看到
</repository>
</distributionManagement>
</project> #在最后一行上面添加以上内容
ビューのWebページ:
展開プロセスは、エラーが発生した場合は、最初のコンフィギュレーション・ファイル最初setting.xmlアカウントのパスワードは、IDタグとポンポンで再審査setting.xml続いネクサス、使用して作成されていないのと同じユーザー・パスワードで確認してください。 IDタグのxmlファイルが同じで、異なるのが401エラー(無許可)を報告します。
4)Mavenの放出倉庫にアップロード
[root@maven lzjweb]# vim /tmp/testdir/lzjweb/pom.xml
……………… #省略部分内容
<version>1.0-SNAPSHOT</version>
#将上面这行的“SNAPSHOT”去掉,更改后如下:
<version>1.0</version>
[root@maven lzjweb]# mvn deploy #再次上传
Webページを表示します。
PWで第三者のMavenネクサスへ5)パッケージのアップロード
図:
サードパーティの倉庫アドレス(グローバルコンフィギュレーション)を追加Mavenの
[root@maven lzjweb]# vim /usr/local/maven/conf/settings.xml
#在之前的profiles(闭合标签差不多在293行),填写以下内容
<repository>
<id>3rdnexus</id>
<url>http://192.168.1.7:8081/repository/3rd/</url>
<release>
<enable>true</enable>
</release>
<snapshots>
<enable>true</enable>
</snapshots>
</repository>
</profiles> #添加到这个Profiles标签上面(添加之前应该是293行)
#在之前的认证字段,再添加一个认证
<server>
<id>test-nexus</id>
<username>testdevops</username>
<password>123456</password>
</server> #此行以上是之前添加的,再次添加以下内容
<server>
<id>3rdnexus</id> #此ID要与profile中的ID对应
<username>testdevops</username>
<password>123456</password>
</server>
[root@maven testdir]# ll aliyun-sdk-oss-2.6.1.jar
-rw-r--r-- 1 root root 470115 10月 10 17:43 aliyun-sdk-oss-2.6.1.jar
[root@maven testdir]# mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.6.1 -Dpackaging=jar -Dfile=/tmp/testdir/aliyun-sdk-oss-2.6.1.jar -Durl=http://192.168.1.7:8081/repository/3rd/ -DrepositoryId=3rdnexus
#基于本地的jar包构建项目
ビューWebページのjarパッケージ
のアップロード:------------この記事を締結、読んでくれてありがとう------------