받는다는 배포와 넥서스 (PW)

보웬 개요 :
A, 메이븐 소개
1) 메이븐 기능 :
관점의 운영 및 유지 보수 인력의 측면에서 2) 메이븐 사용 시나리오 () :
3) 메이븐 저장소
둘째, 배포 메이븐
1) 구성 JDK 환경
2) 메이븐 배포
셋째, 넥서스의 배치를 PW
1) 넥서스 소개
2) 넥서스의 배포
네, Maven은 구성 넥서스 PW, 넥서스 PW 구축 할 수있는 원격 저장소 셋업 비용
1)의 주요 구성 파일의 받는다는 수정
2) 시험에 Maven 프로젝트 생성
3) 구성 인증, 포장됩니다 의 넥서스에 업로드 항목을
받는다는 출시웨어 하우스에 업로드 4)
5) 타사 받는다는 업로드

A, 메이븐 소개

메이븐은 무료 오픈 소스 프로젝트에서 아파치 소프트웨어 재단의 일부입니다, 크로스 플랫폼 프로젝트 관리 도구, 메이븐 프로젝트를 관리하는 프로젝트 객체 모델 (POM) 개념라는 것을 사용하고, 모든 프로젝트의 구성 정보가 정의된다 파일에 pom.xml 파일을 호출. 프로세스는 주로 프로젝트 기반 자바 플랫폼, 의존성 관리 및 프로젝트 정보 관리의 건설 서비스를 제공, 코드를 배포 할 수 있습니다 자동으로 해결 다운로드 할 수있는 코드의 요구에 환경 프로젝트 종속성은 일반적으로 미러 저장소 받는다는에서 환경에있어 따라 더 느리게 다운로드 , 기업은 건물 프로젝트에 액세스 속도를 개선하기 위해 넥서스 서버 환경을 의존하고 저장하기 위해 회사 넥서스 (PW) 내에 설정됩니다.

POM 프로젝트 개체 모델, Maven 프로젝트 작업의 기본 단위 프로젝트에 대한 기본 정보를 포함하는 XML 파일입니다, 프로젝트, 문 프로젝트 종속성 등을 구축하는 방법에 대해 설명합니다.
작업 또는 목표를 수행 할 때, 메이븐 POM은 현재 디렉토리에서 찾습니다. 읽기 POM은 필요한 구성 정보를 획득하고 목표를 수행한다.

POM은 다음과 같은 구성을 지정할 수 있습니다 프로젝트 종속성, 플러그인, 성과 목표, 프로젝트 프로파일, 프로젝트 자료, 프로젝트 개발 목록, 관련 정보를 메일 링리스트를 구축 할 수 있습니다.

1) Maven은 기능 :

;. 1) 표준화 및 카탈로그 계획 자바 프로젝트의 소스 코드, 단위 테스트 코드, 자원, 항아리 패키지, 1 mavne 모델
프로젝트, 일치하지 않는 버전, 버전 충돌과 해결 종속성 2) 2,
3) 3. 합리적인 관리 메커니즘을 항아리;

2)보기 운영 및 유지 보수 인력의 관점에서 메이븐 사용 시나리오 () :

1) 원래 프로젝트 항아리 패키지를 수동으로 복사 한 다음 WEB-INF / lib 디렉토리 프로젝트에 붙여 도움을 받는다는해야한다, 당신은 단지 창고 단지 패키지 저장 만 파일을 참조 할 필요가 프로젝트를 사용할 필요가 필요가없는 것입니다 수 프로젝트에 중복 사본
2) 원래 프로젝트에 필요한 항아리 패키지는 사전에 다운로드하고, 항아리 받는다는 자동으로 네트워크 상태에 필요한 패키지를 다운로드합니다. 첫째, 인터넷에서 다운로드를 찾을 수없는, 현지 창고를 찾을 수;
3) 항아리 항아리 패키지의 원래 프로젝트 수동으로 안내해야 다른 패키지에 의존하고, Maven은 자동으로 패키지 가이드가 올 의존 항아리 될 것입니다;
4 ) 원래 프로젝트는 프로젝트는 프로젝트, 도움은 여러 프로젝트로 프로젝트를 분할 할 수 있습니다 받는다는;

프로젝트 빌드 과정은 다음과 같습니다 : [클린 프로젝트] → [프로젝트] → [컴파일] → → [프로젝트] → [패키지] 배포 프로젝트 다음 단계는 이러한 6 단계는 완전한 프로젝트를 구축하는 것입니다 [테스트 보고서 생성 테스트 프로젝트]를 과정.

3) 메이븐 저장소

메이븐의 용어로, 창고의 위치를 ​​참조, 메이븐 저장소 프로젝트는 타사 라이브러리, 창고가 호출 라이브러리 위치에 따라 달라집니다. 메이븐 종속성 모든 출력, 플러그 또는 프로젝트 빌드에서 멤버 호출 할 수 있습니다.

메이븐 저장소, 모든 JAR 파일 (WAR, ZIP, POM 등)을 넣을 수있는 장소입니다 우리 회원 (주로 항아리)를 관리 할 수 ​​있습니다.

지역, 중앙 원격 : Maven은 세 가지 종류가 있습니다 리포지토리.

1) 로컬 저장소

로컬 저장소를 메이븐, 메이븐을 설치 한 후 만들지 않습니다, 그것은 단지를 만들 때 받는다는 명령의 첫 번째 실행.

메이븐을 실행하는 경우, Maven은 모든 구성 요소는 지역 창고에서 직접 촬영이 필요합니다. 더 로컬 저장소 경우, 먼저 로컬웨어 하우스로 원격 저장소 유물에서 다운로드를 시도하고 로컬 저장소 구성 요소를 사용합니다.

기본적으로 리눅스 또는 Windows 여부, 자신의 사용자 디렉토리의 각 사용자는 경로 이름 .m2 / respository / 저장소 디렉토리가 있습니다.

2) 중앙 창고

메이븐 중앙 저장소는 일반적으로 사용되는 라이브러리의 큰 숫자를 포함하는 지역 사회 메이븐 저장소에 의해 제공됩니다.

Maven은 내장 된 원격 공용 저장소 : http://repo1.maven.org/maven2 .

중앙 창고는 가장 인기있는 오픈 소스 자바 구성 요소뿐만 아니라, 소스, 저자 정보, SCM, 정보, 라이센스 정보가 포함되어 있습니다. 일반적으로, 간단한 자바 프로젝트 종속 구성 요소는 여기에서 다운로드 할 수 있습니다.

3) 타사 창고

또한도 PW로 알려진 내부 중앙 창고로 알려진 타사 창고.

PW가 : 일반적으로 회사 자체에 의해 설정, 단지 회사 내에서 공유됩니다. 그것은 내부 공동 및 보관 성분으로서 사용될 수 있고, 그것은 (중앙 창고 액세스를 줄일 것이다 PW 사용) 외부 액세스 및 다운로드 횟수를 줄일 공공 도서관 미러 캐시로서 사용될 수있다.

자세한 내용은 회장이 문서 수 : 메이븐 자습서

둘째, 메이븐을 배포

자바 환경에 의존 메이븐 필요를 설치, 그것은 배포 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)를 배치 메이븐

[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) 알리 구름웨어 하우스 주소를 사용하도록 구성

때문에 주소 받는다는 공식 웹 사이트의 사용. 알리 클라우드가 제공하는 직접적인 변화를 받는다는 저장소 주소, 그래서 느린 다운로드!

[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) 메이븐 프로필

setting.xml 님의 메이븐 프로파일 이름. 그것은 두 장소에 저장됩니다 :
1) #의 /usr/local/maven/conf/settings.xml 설치 디렉토리를,.
2) ~ / .m2 / 중 # Settings.XML이 사용자의 홈 디렉토리;

설치 구성 및 글로벌 디렉토리 구성, 사용자 구성 디렉토리 구성은 사용자로 언급된다. 모두가있는 경우, 그 내용은 통합, 사용자 범위 Settings.XML의 우선 순위가 될 것입니다.

기본 사용자 프로파일 디렉토리는 사용자 디렉토리에 받는다는 Settings.XML의 설치 디렉토리를 복사 할 수 없습니다.

일반에 Settings.XML의 파일 구성으로 다음 개정 :
로컬 저장소에 저장 경로를 수정) 1, 기본값은 ~ / .m2 / 자신의 요구에 수정 Settings.XML이의 localrepository 디렉토리에서 사용할 수있는 저장소;
2) 서버 건설하는 경우 때문에 네트워크 장애 나 보안 문제가 true로 오프라인 속성 세트를 설정, 오프라인 모드를 필요로하는 원격 저장소에 연결할 수 없습니다, 기본값은 false로입니다
. 3), 중앙웨어 하우스 서버를 수정 구성 파일 노트를 수정, 추가 또는 미러 주소를 수정,
4) 있음 프록시 주소, 구성 파일의 프록시 레이블을 수정, 받는다는 에이전트를 달성하기 위해 프록시 서버를 정의합니다.

중앙웨어 하우스 서버가 해외에 있기 때문에, 가정용, 다음 더 느리게 다운로드, 국내 사용자가 창고의 주소를 aliyun하는 것이 좋습니다.

5) 메이븐 일반적인 명령

[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 명령

다음과 같이 명확하게 정의되고 구축하고 특정 프로젝트 프로세스를 배포 수단 수명주기의 개념을 기반으로이 센터를 구축 받는다는 :
수명주기의 일반보기 :
받는다는 배포와 넥서스 (PW)
수명주기의 상세지도를 :
받는다는 배포와 넥서스 (PW)

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

루트 디렉토리 아래 웹 톰캣 모바일 전쟁 패키지에 대한 클라이언트 액세스, 등의 표시 :
받는다는 배포와 넥서스 (PW)

셋째, 넥서스 PW 배포

1) 넥서스 소개

Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。
받는다는 배포와 넥서스 (PW)

本地仓库就是我们在maven的setting.xml中配置的本地仓库地址。由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库是maven默认的远程仓库。

私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
받는다는 배포와 넥서스 (PW)

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 

启动成功,浏览器进行访问:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

[root@maven ~]# cat /usr/local/nexus/sonatype-work/nexus3/admin.password
da8b24ed-8bd2-42c5-864f-858216a21cf4       #复制查看出的密码信息

받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

1)创建角色

如图:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

2)创建用户

如图:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

3)查看默认仓库类型

如图:
받는다는 배포와 넥서스 (PW)

默认的仓库类型介绍:

  • 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。如下:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

5)设置代理仓库(采用阿里云maven仓库)

如图:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
阿里云仓库的URL:https://maven.aliyun.com/nexus/content/groups/public/
받는다는 배포와 넥서스 (PW)

6)将添加的阿里云Proxy加入默认group中

如图:
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
保存后,再次刷新页面,即可看到当前的Nexus地址:
받는다는 배포와 넥서스 (PW)

关于上述配置的常见使用场景介绍如下:

  • 호웨어 하우스를 해제 (넥서스는 기본적으로 설립되었습니다 : 받는다는 - 피면를);
  • 스냅 샷 스냅 샷 저장소 테스트 센터 (넥서스는 기본적으로 설립되었습니다 : 받는다는 - 스냅 샷);
  • 중앙 중앙 창고 (넥서스는 기본적으로 설립되었습니다 : 받는다는 - 중앙);

그룹 소개 : 그룹 넥서스을 설정할 수 있습니다, 창고의 서로 다른 종류의 (: 받는다는 공공을 기본 넥서스가 설립되었습니다) 가져

  • 장면 : 사용자 정의 새로운 프록시 유형 창고, 다른 받는다는 호출 주소 구조로 배열 된 각각, 또는 새로운 통합 저장소 프록시 메이븐 구성에서 그룹 호출 주소에 가입 사용자 정의 할 수;
  • 장면 두 : ; 사용 받는다는 좋은 프록시 창고를 설립하고, 설립 그룹 (받는다는 비공개) 구성 받는다는 호출 주소 사용했다
    습관과 필요를 개발하고 회사에 따르면 장면과 본질적으로 장면이 변화 없음, 구성을 할 수있다!

네, 메이븐 구성 넥서스 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) 시험에 메이븐 프로젝트를 생성

다음과 같이 먼저, 익명 쓰기 넥서스에 필요한 권한을 엽니 다
받는다는 배포와 넥서스 (PW)

[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

웹 페이지보기 :
받는다는 배포와 넥서스 (PW)

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>           #在最后一行上面添加以上内容

웹 페이지보기 :
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
배포 프로세스가 오류가 발생한 경우, 먼저 구성 파일 처음 setting.xml 계정 암호는 ID 태그와 치에 다시 시험 setting.xml 다음 넥서스으로 만들어지지 않습니다 동일한 사용자 암호입니다 확인. ID 태그 XML 파일 같은 다른이의 401 오류 (권한 없음)을보고 할 것입니다.

4) 받는다는 방출 창고에 업로드

[root@maven lzjweb]# vim /tmp/testdir/lzjweb/pom.xml 
………………          #省略部分内容
  <version>1.0-SNAPSHOT</version>   
    #将上面这行的“SNAPSHOT”去掉,更改后如下:
  <version>1.0</version>
[root@maven lzjweb]# mvn deploy      #再次上传

웹 페이지보기 :
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

타사 받는다는 넥서스에서 PW 5) 패키지 업로드

도표 :
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

타사웨어 하우스 주소 (글로벌 구성)을 추가 받는다는

받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)

[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包构建项目      

보기 웹 페이지 항아리 패키지
받는다는 배포와 넥서스 (PW)
받는다는 배포와 넥서스 (PW)
업로드 : ------------이 기사를 마무리, 읽어 주셔서 감사합니다 ------------

추천

출처blog.51cto.com/14157628/2472382