넥서스 사복 만들기 노트
maven은 settings 2개가 필요합니다.xml: $M2HOME/conf/settings.xml, 이것은 전역 설정입니다. 일반적으로 한 팀은 일부 기초 설정에서 일치해야 합니다. 이것은 일반적으로 팀의 공용 설정으로서 모든 팀 구성원의 이 설정이 같음을 보장합니다.다른 하나는 $HOME/.m2/settings.xml, 이것은 사용자 설정입니다. 예를 들어 팀의 모든 개발 엔지니어가 서버에 연결하는 인증 계정이 다르기 때문에 이 설정 파일에 넣을 수 있습니다.사용자 프로비저닝과 글로벌 프로비저닝에 동일한 설정 옵션이 포함된 경우 사용자 프로비저닝이 글로벌 프로비저닝보다 우선순위가 높습니다.사용자 프로필이 존재하지 않으면 전역 프로필을 사용자 프로필의 위치로 복사한 다음 원하는 대로 수정할 수 있습니다.
maven의 기본 로컬 창고와 기본 중앙 창고
maven의 기본 로컬 저장소는 $HOME/.m2/repository.maven3.3.9 기본 원격 웨어하우스의 정의 파일은 $M2HOME/lib/maven-model-builder-3.3.9.jar 패키지에서jar 접두사를rar로 바꾼 후 압축 소프트웨어를 사용하여 압축을 풀고 org/apache/maven/model을 누르면pom-4.0.0을 엽니다.xml, 아래 정의된 중앙 창고의 내용을 볼 수 있습니다
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
never
저장소 유형
창고는 주로 2가지로 나뉘는데 그것이 바로 현지 창고와 원격 창고이다.그 중에서 원격 창고는 중앙 창고(apache 등 조직 유지보수), 제3자(third party, Oracle을 저장하는 데이터베이스에서 이런 중앙 창고를 구동하는데 저작권이 저장되지 않는jar 패키지), 사복(회사 내부에서 많은 팀을 위해 크게 구축한 원격 창고)으로 나뉜다.Maven은 일반적으로 원격 창고를 배치해야 한다. 아파치가 제공하는 중앙 창고일 수도 있고 회사 내부에서 만든 사복이 될 수도 있다.
넥서스로 사복 만들기
Nexus는 개인 창고를 구축하는 소스 오픈 무료 소프트웨어로 여기를 클릭하여 다운로드할 수 있다.현재 3.0버전은 war백을 다운로드할 수 없습니다. 제가 다운로드한 것은nexus-3.1.0-04-mac입니다.tgz.사용자 디렉토리에서 Nexus 폴더의 압축을 풀고 bash 편집profile:
$ vim ~/.bash_profile
nexus 환경 변수 추가: export NEXUS_HOME=/Users/chenxin/Nexus/nexus-3.1.0-04-mac/nexus-3.1.0-04export PATH=$PATH:$NEXUS_HOME/bin
실행$ nexus
단말기 알림 표시: Usage: /Users/chenxin/Nexus/nexus-3.1.0-04-mac/nexus-3.1.0-04/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}
이번 실행$ nexus start
단말기 알림Starting nexus
브라우저에 입력http://127.0.0.1:8081, 아직 공백 상태입니다. 약 5~10s 후에 페이지를 갱신하면 넥서스 관리계main이 나타납니다.오른쪽 상단에 Sign in 옵션이 있습니다. 기본 사용자 이름: admin, 기본 비밀번호: admin123.repositories 옵션에서 마ven-public에 대응하는 URL은http://127.0.0.1:8081/repository/maven- public/, 이것은 마븐이 구성 요소를 가져오는 인터페이스입니다. 마븐의settings에 설정해야 합니다.xml 중입니다.repositories의 창고는 3가지 유형이 있다. proxy:nexus 에이전트의 외부 창고, 예를 들어 마븐 중앙 창고hosted: 회사 내부에서 개발한 부품 발표 버전 창고인 마븐-releases와 스냅샷 버전 창고인 마븐-snapshots는 모두 이런 유형이다. 그룹: 이전의 2가지 유형의 창고를 지정한 순서대로 조합할 수 있다. 예를 들어 마븐-public 유형은 그룹이다.마ven-central, 마ven-releases와 마ven-snapshots를 조합하여 넥서스 사용에 대한 정보는 넥서스 공식 문서를 참고하십시오.Maven 여러 웨어하우스 사용
만약에 마벤트가 마벤트의 중앙 창고만 사용하는 것이 아니라 다른 창고를 사용하고 싶다면 두 가지 방식으로 여러 개의 창고를 설정할 수 있다. 첫 번째 방법은 프로젝트의pom이다.xml에서 설정을 통해 이러한 방법으로 설정된 창고 역할 범위는 단지 하나의 항목일 뿐입니다.두 번째 방법은 마븐의 $HOME/.m2/settings.xml에서 설정을 통해 이 설정 방식의 작용 범위는 이 마븐을 사용하여 만든 모든 항목입니다.자세한 내용은 Maven 공식 설명을 참조하십시오. Setting up Multiple Repositories.일부 Maven 창고: maven 중앙 창고:https://repo.maven.apache.org/maven2아리운 창고:http://maven.aliyun.com/nexus/content/groups/public/
maven을 구성하는 사용자 구성은 $HOME/.m2의settings.xml 프로필은 다음과 같습니다.
$HOME/.m2/repository
true
false
optional
false
http
proxyuser
proxypass
proxy.host.net
80
local.net|some.host.com
nexus
admin
admin123
nexus
*
nexus public mirror
http://127.0.0.1:8081/repository/maven-public/
위의 설정 파일에 대해 설명하고자 하는 것은 서버의 id와mirror의 id가 같아야 마ven이mirror(즉nexus)에 연결될 때 정확한 인증 정보를 얻을 수 있다는 것입니다. 이 점에 대해서는 마ven 공식 Settings Reference와 이 문제 해결 방안인 Dependency Resolution Exception을 참고하십시오.또한 인터넷에 올라온 많은 글(참고부분에 붙인 글 포함)은 프로필에 있는 Repositories의 설정이 잘못되었거나 필요하지 않다고 했습니다. 미러를 설정한 후에 모든 다른 창고가 효력을 상실했고 설정할 필요도 없습니다. 만약에 미러나central의 데이터를 프로필에 다시 한 번 설정하면 더욱 필요없습니다.그래서 위의 프로필은 프로필과 acrive 프로필에 대한 설명을 삭제했습니다.
IntelliJ IDEA를 사용하여 maven 프로젝트 생성하기
New Project 대화상자 왼쪽 표시줄에서 Maven을 선택하고,Create from archetype을 선택하고,maven-archetype-webapp을 선택하고,next를 누르고,GroupId를 누르면com을 채웁니다.engchen, ArtifactId testmaven 작성, 버전 기본 1.0-snapshot.다음next를 누르면 maven은 maven 설치 루트 디렉터리를 선택하고user settings file는 기본 $HOME/를 사용합니다.m2/settings.xml이면 됩니다. local repository에서 $HOME/.m2/repository, 2개의override를 모두 선택하고 넥스트를 누르면 프로젝트 이름TestMaven을 기입합니다.
idea 콘솔에서 다음 정보를 출력합니다.
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/private/var/folders/pz/1sq2sn2922d0bzrpycsht1d40000gn/T/archetypetmp -Dmaven.home=/Users/chenxin/Workspaces/Maven/apache-maven-3.3.9 -Dclassworlds.conf=/Users/chenxin/Workspaces/Maven/apache-maven-3.3.9/bin/m2.conf -Dfile.encoding=UTF-8 -classpath /Users/chenxin/Workspaces/Maven/apache-maven-3.3.9/boot/plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2016.1.3 -s /Users/chenxin/.m2/settings.xml -Dmaven.repo.local=/Users/chenxin/.m2/repository -DinteractiveMode=false "-DgroupId=com.engchen " -DartifactId=testmaven -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=RELEASE org.apache.maven.plugins:maven-archetype-plugin:RELEASE:generate
[INFO] Scanning for projects...
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml
......
......
......
Downloaded: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml (780 B at 5.3 KB/sec)
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/apache/16/apache-16.pom
Downloaded: http://127.0.0.1:8081/repository/maven-public/org/apache/apache/16/apache-16.pom (16 KB at 1074.0 KB/sec)
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/plugins/maven-archetype-plugin/2.4/maven-archetype-plugin-2.4.jar
Downloaded: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/plugins/maven-archetype-plugin/2.4/maven-archetype-plugin-2.4.jar (92 KB at 4345.6 KB/sec)
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom ---
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/archetype/archetype-catalog/2.4/archetype-catalog-2.4.pom
Downloaded: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/archetype/archetype-catalog/2.4/archetype-catalog-2.4.pom (2 KB at 84.5 KB/sec)
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/archetype/archetype-models/2.4/archetype-models-2.4.pom
......
......
......
Downloading: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom
Downloaded: http://127.0.0.1:8081/repository/maven-public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom (533 B at 37.2 KB/sec)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /private/var/folders/pz/1sq2sn2922d0bzrpycsht1d40000gn/T/archetypetmp
[INFO] Parameter: package, Value: com.engchen
[INFO] Parameter: groupId, Value: com.engchen
[INFO] Parameter: artifactId, Value: testmaven
[INFO] Parameter: packageName, Value: com.engchen
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /private/var/folders/pz/1sq2sn2922d0bzrpycsht1d40000gn/T/archetypetmp/testmaven
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.071 s
[INFO] Finished at: 2016-11-18T15:33:38+08:00
[INFO] Final Memory: 12M/185M
[INFO] ----------------------------------------
[INFO] Maven execution finished
마븐이 로컬 개인 창고에서 의존을 다운로드한 것을 볼 수 있습니다. 현재 프로젝트의pom에 있습니다.xml에 의존을 추가합니다. 무슨 일이 일어날지 보십시오.
org.eclipse.jetty
jetty-io
9.3.11.M0
다음에 로컬 창고와nexus에 이jar 패키지가 있는지 확인하십시오.
nexus에 테스트 마븐 게시
방금 만든 프로젝트pom.xml에 추가
nexus http://127.0.0.1:8081/repository/maven-releases// nexus http://127.0.0.1:8081/repository/maven-snapshots/
id는 setting이어야 합니다.xml에 있는 서버의 id는 인증 정보를 얻는 데 사용됩니다.
Maven Projects->Lifecycle->Deploy에서 오른쪽 키로run maven bulid, 터미널 출력을 실행합니다
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/Users/chenxin/Documents/TestMaven -Dmaven.home=/Users/chenxin/Workspaces/Maven/apache-maven-3.3.9 -Dclassworlds.conf=/Users/chenxin/Workspaces/Maven/apache-maven-3.3.9/bin/m2.conf -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Users/chenxin/Workspaces/Maven/apache-maven-3.3.9/boot/plexus-classworlds-2.5.2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=2016.1.3 -s /Users/chenxin/.m2/settings.xml -Dmaven.repo.local=/Users/chenxin/.m2/repository deploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building testmaven Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testmaven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testmaven ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testmaven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/chenxin/Documents/TestMaven/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testmaven ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ testmaven ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ testmaven ---
[INFO] Packaging webapp
[INFO] Assembling webapp [testmaven] in [/Users/chenxin/Documents/TestMaven/target/testmaven]
[INFO] Processing war project
[INFO] Copying webapp resources [/Users/chenxin/Documents/TestMaven/src/main/webapp]
[INFO] Webapp assembled in [32 msecs]
[INFO] Building war: /Users/chenxin/Documents/TestMaven/target/testmaven.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ testmaven ---
[INFO] Installing /Users/chenxin/Documents/TestMaven/target/testmaven.war to /Users/chenxin/.m2/repository/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-SNAPSHOT.war
[INFO] Installing /Users/chenxin/Documents/TestMaven/pom.xml to /Users/chenxin/.m2/repository/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-SNAPSHOT.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ testmaven ---
Downloading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/maven-metadata.xml
Uploading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-20161118.075240-1.war
Uploaded: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-20161118.075240-1.war (493 KB at 6482.9 KB/sec)
Uploading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-20161118.075240-1.pom
Uploaded: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/testmaven-1.0-20161118.075240-1.pom (2 KB at 42.5 KB/sec)
Downloading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/maven-metadata.xml
Uploading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/maven-metadata.xml
Uploaded: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/1.0-SNAPSHOT/maven-metadata.xml (764 B at 29.8 KB/sec)
Uploading: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/maven-metadata.xml
Uploaded: http://127.0.0.1:8081/repository/maven-snapshots/com/engchen/testmaven/maven-metadata.xml (278 B at 10.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.397 s
[INFO] Finished at: 2016-11-18T15:52:40+08:00
[INFO] Final Memory: 15M/303M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
이후 브라우저를 통해 확인한 결과 넥서스의 마ven-snapshots에testmaven, 즉 방금 프로젝트의artifactid가 많아진 것을 발견하였다.
참고 문장
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.