Maven의 구성 파일 settings.xml은 두 곳에 존재합니다.
1. 설치 장소 : $ {M2_HOME} /conf/settings.xml
2. 사용자 디렉토리 : $ {user.home}/. m2/settings.xml
전자는 글로벌 구성이라고도하며 운영 체제의 모든 사용자에게 효과적입니다. 후자는 사용자 구성이라고하며 현재 운영 체제의 사용자에게만 효과적입니다. 두 가지 모두 존재하면 해당 내용이 병합되고 사용자 전체 Setting.xml은 Global Settings.xml을 덮어 씁니다.
Maven이 설치된 후 Settings.xml은 사용자 디렉토리에서 자동으로 생성되지 않으며 전역 구성 파일 만 사용할 수 있습니다. 사용자 전체 settings.xml을 만들어야하는 경우 설치 경로에서 디렉토리 $ {user.home}/. m2/에 대한 설정을 복사 할 수 있습니다. Maven의 Default Settings.xml은 주석과 예를 포함하는 템플릿입니다. 요구 사항을 충족하기 위해 신속하게 수정할 수 있습니다.
글로벌 구성이 변경되면 모든 사용자에게 영향을 미칩니다. Maven이 업그레이드되면 모든 구성이 지워집니다. 따라서 $ {m2_home} /conf/settings.xml 파일을 미리 복사하여 백업해야합니다. 일반적으로 Global Settings.xml을 구성하는 것이 좋습니다.
settings.xml 자세한 설명
선언 사양
<? xml version = "1.0"encoding = "utf-8"?> <settings xmlns = "http://maven.apache.org/pom/4.0.0"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance" xsi : schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/settings-1.0.xsd">
지역 반복
<!- 로컬 리포지토리의 경로. 기본값은 $ {user.home}/. m2/repository입니다. -> <localRepository> USR/LOCAL/MAVEN </localRepository>상호 작용
<!- Maven은 입력을 얻기 위해 사용자와 상호 작용해야합니까? Maven이 입력을 얻기 위해 사용자와 상호 작용 해야하는 경우 true로 설정하면 False 여야합니다. 기본값은 사실입니다. -> <InteractiveMode> true </interactiveMode>
usepluginregistry
<!-Maven은 플러그인 버전을 관리하려면 플러그인 -registry.xml 파일을 사용해야합니다. Maven이 파일 $ {user.home}/. 기본값은 False입니다. -> <usepluginregistry> false </usepluginregistry>오프라인 오프라인
<!-Maven이 오프라인 모드로 실행 해야하는지 여부를 나타냅니다. 빌드 시스템이 오프라인 모드로 실행 해야하는 경우 기본값으로 거짓으로 실행됩니다. 이 구성은 빌드 서버가 네트워크 설정 또는 보안 요소로 인해 원격 저장소에 연결할 수없는 경우 매우 유용합니다. -> <오프라인> false </offline>
플러그 그룹
<!- 플러그인 조직 ID (GroupId)가 명시 적으로 제공되지 않으면 플러그인 조직 ID (GroupId) 목록을 검색하는 것입니다. 이 요소는 플러그 그룹 요소 목록이 포함되어 있으며 각 어린이 요소에는 조직 ID (GroupId)가 포함되어 있습니다. 플러그인을 사용하고 명령이 행동 할 때 조직 ID (GroupID)를 제공하지 않으면 Maven이 목록을 사용합니다. 기본적 으로이 목록에는 org.apache.maven.plugins 및 org.codehaus.mojo-> <flugingroups> <!-플러그인 조직 ID (groupId)-> <FlugingRoup> org.codehaus.mojo </plugingroup> </plugingroups>가 포함됩니다.
프록시
<!-다른 에이전트를 구성하려면 다중 프로시 프로파일은 노트북 또는 모바일 장치의 작업 환경에 대처할 수 있습니다. 단순히 프로파일 ID를 설정하면 전체 프록시 구성을 쉽게 변경할 수 있습니다. -> <proxies> <!-프록시 요소는 프록시를 구성 할 때 필요한 정보를 포함합니다-> <proxy> <!-프록시의 고유 한 정의는 다른 프록시 요소를 구별하는 데 사용됩니다. -> <id> myproxy </id> <!-이 프록시가 활성화 된 것입니까? True는 프록시를 활성화합니다. 에이전트 세트를 선언하고 어느 시점에서 하나의 에이전트 만 활성화해야합니다. 해당 요소는 유용 할 수 있습니다. -> <ctive> true </active> <!-프록시 프로토콜. 프로토콜 : // 호스트 이름 : 포트, 쉽게 구성 할 수 있도록 개별 요소로 분리됩니다. -> <protocol> http </protocol> <!-프록시의 호스트 이름. 프로토콜 : // 호스트 이름 : 포트, 쉽게 구성 할 수 있도록 개별 요소로 분리됩니다. -> <host> proxy.somewhere.com </host> <!-프록시 포트. 프로토콜 : // 호스트 이름 : 포트, 쉽게 구성 할 수 있도록 개별 요소로 분리됩니다. -> <port> 8080 </port> <!-프록시 서버 인증 된 로그인 이름 및 비밀번호의 사용자 이름, 사용자 이름 및 비밀번호. -> <Cersername> proxyuser </username> <!-프록시, 사용자 이름 및 비밀번호의 비밀번호는 프록시 서버 인증의 로그인 이름 및 비밀번호를 나타냅니다. -> <password> somepassword </password> <!-프록시하지 말아야 할 호스트 이름 목록. 이 목록의 구분 기는 프록시 서버에 의해 지정됩니다. 예에서는 수직 라인 구분 기호가 사용되며 쉼표도 일반적입니다. -> <proxyhosts>*. Google.com | ibiblio.org </nonproxyhosts> </proxy> </proxies>
서버
<!-서버에서 일부 설정을 구성합니다. 보안 인증서와 같은 일부 설정은 pom.xml로 배포해서는 안됩니다. 이 유형의 정보는 빌드 서버의 settings.xml 파일에 존재해야합니다. -> <servers> <!-서버 요소에는 서버를 구성 할 때 필요한 정보가 포함되어 있습니다-> <server> <!-이것은 서버의 ID입니다 (사용자 로그인의 ID가 아님). -> <id> server001 </id> <!-승인 된 사용자 이름. 인증 사용자 이름과 인증 암호는 서버 인증에 필요한 로그인 이름과 암호를 나타냅니다. -> <username> my_login </username> <!-인증 비밀번호. 인증 사용자 이름과 인증 암호는 서버 인증에 필요한 로그인 이름과 암호를 나타냅니다. 비밀번호 암호화 기능이 2.1.0+에 추가되었습니다. 자세한 내용은 비밀번호 암호화 페이지-> <password> my_password </password> <!-인증 중에 사용되는 개인 키의 위치를 방문하십시오. 처음 두 요소와 마찬가지로 개인 키 위치 및 개인 키 암호는 개인 키로가는 경로 (기본값은 $ {user.home}/. ssh/id_dsa)와 필요한 경우 비밀 문을 지정합니다. 앞으로는 암호 및 비밀번호 요소가 외부에서 추출 될 수 있지만 현재 Settings.xml 파일의 일반 텍스트로 선언해야합니다. -> <privatekey> $ {usr.home}/. ssh/id_dsa </privatekey> <!-인증에 사용되는 개인 키 비밀번호. -> <PassPhrase> some_passphrase </passphrase> <!-파일이 생성 될 때의 권한. 배포 중에 저장소 파일 또는 디렉토리가 작성된 경우 권한을 사용할 수 있습니다. 이 두 요소의 법적 가치는 3 자리 숫자이며,이 번호는 664 또는 775와 같은 UNIX 파일 시스템의 권한에 해당합니다 .-> <filePermissions> 664 </FilePermissions> <!-디렉토리가 생성 될 때의 권한. -> <directoryPermissions> 775 </directoryPerMissions> </server> </servers>거울
<!-리포지토리 목록에 대해 구성된 다운로드 미러 목록. 고급 설정은 미러 설정 페이지-> <mirrors> <!-주어진 저장소에 대한 거울을 다운로드하십시오. -> <mirror> <!-거울의 고유 식별자. ID는 다른 거울 요소를 구별하는 데 사용됩니다. -> <id> Planetmirror.com </id> <!-미러 이름-> <name> Planetmirror Australia </name> <!-이미지의 URL. 빌드 시스템은 기본 서버 URL을 사용하지 않고이 URL을 사용하여 우선 순위를 정합니다. -> <url> http://downloads.planetmirror.com/pub/maven2 </url> <!-미러 서버의 ID. 예를 들어, Maven Central Repository (http://repo.maven.apache.org/maven2/)의 거울을 설정하려면 요소를 Central으로 설정해야합니다. 이것은 중앙 창고의 중심과 정확히 동일해야합니다. -> <mirrorof> 중앙 </mirrorof> </mirror> </mirrors>
프로필
<!-환경 매개 변수에 따라 빌드 구성 목록을 조정하십시오. settings.xml의 프로파일 요소는 pom.xml의 프로파일 요소의 자른 버전입니다. 여기에는 ID, 활성화, 리포지토리, 플러그인 구분 및 속성 요소가 포함되어 있습니다. 여기의 프로파일 요소에는 별도의 프로젝트 객체 모델 설정이 아닌 전체 구성 시스템에만 관심이 있기 때문에이 5 가지 하위 요소 만 포함합니다. 설정의 프로파일이 활성화되면 값은 동일한 ID로 POM 또는 Profile.xml에 정의 된 다른 프로파일을 덮어 씁니다. -> <profiles> <!-환경 매개 변수에 따라 조정 된 구성 요소 구성-> <profile> <!-이 구성의 고유 식별자입니다. -> <id> 테스트 </id>
활성화
<!-프로파일을 자동으로 트리거하는 조건부 논리. 활성화는 프로파일의 오프닝 키입니다. POM의 프로파일과 마찬가지로 프로파일의 힘은 특정 환경에서 특정 값을 자동으로 사용하는 능력에서 비롯됩니다. 이러한 환경은 활성화 요소에 의해 지정됩니다. 활성화 요소가 프로파일을 활성화하는 유일한 방법은 아닙니다. settings.xml 파일의 ActiveProfile 요소에는 프로파일의 ID가 포함될 수 있습니다. -P 태그와 쉼표로 구분 된 목록을 사용하여 명령 줄에서 프로파일을 명시 적으로 활성화 (예 : -P 테스트) 할 수 있습니다. -> <활성화> <!-기본적으로 프로파일이 활성화되는지 여부를 식별합니다-> <ctiveByDefault> false </activeByDefault> <!-일치하는 JDK가 감지되면 프로파일이 활성화됩니다. 예를 들어, 1.4는 JDK1.4, 1.4.0_2를 활성화하고! 1.4는 1.4로 시작하는 JDK의 모든 버전을 활성화합니다. -> <jdk> 1.5 </jdk> <!-일치하는 운영 체제 속성이 감지되면 프로파일이 활성화됩니다. OS 요소는 일부 운영 체제 관련 속성을 정의 할 수 있습니다. -> <os> <-프로파일을 활성화하는 운영 체제의 이름-> <name> Windows XP </name> <!-프로파일을 활성화하는 운영 체제의 제품군 ( 'Windows')-> <fomily> windows </family> <!-프로필의 운영 체제 아키텍처-> <아치> x86 <! <!-Maven이 특정 속성을 감지하면 (POM에서 값을 $ {name}으로 참조 할 수 있음) 해당 이름 = 값을 가지며 프로파일이 활성화됩니다. 값 필드가 비어 있으면 속성 이름 필드가 있으면 프로파일이 활성화됩니다. 그렇지 않으면, 속성 값 필드는 케이스에 민감한 방식으로 일치합니다-> <posperation> <!-프로파일을 활성화하는 속성의 이름-> <name> mavenversion </nameversion </nameversion </name> <!-프로파일을 활성화하는 속성의 값-> <alue> 2.0.3 </value> <!-존재 또는 비 출판물을 감지하여 프로파일을 활성화시키는 파일 이름을 제공합니다. 누락 된 파일이 존재하는지 확인하고 프로파일이 존재하지 않으면 프로파일을 활성화합니다. 반면에, 파일이 존재하는지 확인하고 프로파일이 존재하는 경우 프로파일을 활성화합니다. -> <file> <!-지정된 파일이 존재하면 프로필을 활성화하십시오. -> <Exists> $ {basedir} /file2.properties </exists> <!-지정된 파일이 존재하지 않으면 프로파일을 활성화하십시오. -> <sivide> $ {basediir} /file1.properties </missing> </file> </activation> 속성
<!-프로파일에 해당하는 확장 된 속성 목록. Maven 속성은 Ant의 속성과 동일하며 일부 값을 저장하는 데 사용할 수 있습니다. 이 값은 POM의 어느 곳에서나 태그 $ {x}와 함께 사용될 수 있으며, 여기서 X는 속성의 이름을 나타냅니다. 속성은 5 가지 양식으로 제공되며 Settings.xml 파일에서 모두 액세스 할 수 있습니다. 1. Env.x : "Env"로 접두사. 쉘 환경 변수를 반환합니다. 예를 들어, "Env.Path"는 $ 경로 환경 변수 (Windows의% 경로%)를 나타냅니다. 2. project.x : POM의 해당 요소 값을 나타냅니다. 예를 들어 : <project> <버전> 1.0 </version> </project> $ {project.version}을 통해 버전 값을 가져옵니다. 3. settings.x : settings.xml에서 해당 요소의 값을 나타냅니다. 예 : <settings> <offline> false </offline> </settings> $ {settings.offline}을 통해 오프라인 값을 가져옵니다. 4. Java System Properties : Java.lang.system.getProperties ()를 통해 액세스 할 수있는 모든 속성은 $ {java.home}과 같은이 양식을 사용하여 POM에서 액세스 할 수 있습니다. 5. x : <속성/> 요소 또는 외부 파일로 설정하면 $ {somevar}로 사용하십시오. -> <properties> <user.install> $ {user.home}/our-project </user.install> </properties>참고 : 프로필이 활성화되면 POM에서 $ {user.install}을 다시 사용할 수 있습니다.
저장소
<!-원격 저장소 목록은 Maven이 빌드 시스템의 로컬 리포지토리를 채우는 데 사용하는 원격 프로젝트 세트입니다. -> <repositories> <!-원격 저장소에 연결되어야하는 정보가 포함되어 있습니다 .-> <repository> <!-원격 저장소 고유 식별자-> <id> CodeHausSnapShots </id> <!-원격 저장소 이름-> <name> CodeHaus SnapShots </name> <!-REPOSONTE에서 공개 된 버전을 다루는 방법 <! 특정 유형의 구성 요소 (릴리스 버전, 스냅 샷 버전)를 다운로드하기 위해 저장소가 열려 있습니다. -> <enabled> false </enabled> <!-이 요소는 업데이트가 얼마나 자주 발생하는지 지정합니다. Maven은 로컬 POM과 원격 POM의 타임 스탬프를 비교합니다. 여기의 옵션은 다음과 같습니다. 항상, 매일 (기본값, 매일), 간격 : X (여기 x는 시간 간격) 또는 절대 (절대)입니다. -> <ududpolicy> 항상 </updatepolicy> <!-maven 확인 구성 요소 확인 파일이 실패 할 때해야 할 일 -ignore, fail 또는 경고. -> <ChepSumpolicy> WARN </CheckSumpolicy> </reeleases> <!-원격 저장소에서 스냅 샷 버전 다운로드를 처리하는 방법. 두 세트의 구성, 릴리스 및 스냅 샷을 사용하여 POM은 각 별도의 저장소에서 각 유형의 구성 요소에 대해 다른 전략을 채택 할 수 있습니다. 예를 들어, 누군가가 개발 목적으로 만 스냅 샷 버전 다운로드를 지원하기로 결정할 수 있습니다. 리포지토리/저장소/릴리스 요소-> <snapshots> <enabled/> <updatepolicy/> <checksumpolicy/> </snapshots> <!-프로토콜의 원격 리포지토리 URL : // hostname/path form-> <url> http://snapshots.maven.codehaus.org/maven2 </url> <! 구성 요소를 찾고 정렬하는 데 사용됩니다 - 기본 또는 레거시 일 수 있습니다. Maven 2는 저장소에 대한 기본 레이아웃을 제공합니다. 그러나 Maven 1.x는 레이아웃이 다릅니다. 이 요소를 사용하여 레이아웃이 기본 유산인지 여부를 지정할 수 있습니다. -> <layout> default </layout> </repository> </repository> <!-플러그인의 원격 저장소 목록을 발견하십시오. 창고는 두 가지 주요 구성 요소가있는 주택입니다. 첫 번째 구성 요소는 다른 구성 요소의 종속성으로 사용됩니다. 이것은 중앙 창고에 저장된 대부분의 구성 요소 유형입니다. 다른 구성 요소 유형은 플러그인입니다. Maven 플러그인은 특수 유형의 구성 요소입니다. 이러한 이유로 플러그인 저장소는 다른 저장소와 무관합니다. PluginRepositories 요소의 구조는 리포지토리 요소의 구조와 유사합니다. 각 PluginRepository 요소는 Maven이 새 플러그인을 찾는 데 사용할 수있는 원격 주소를 지정합니다. -> <PluginRepositories> <!-원격 플러그인 저장소에 연결 해야하는 정보가 포함되어 있습니다. 프로파일/프로파일/리포지토리/리포지토리 요소에 대한 설명-> <fluginRepository> <releases> <enabled/> <updatepolicy/> <checksumpolicy/> </reeleases> <snapshots> <enabled/> <updatepolicy/> <checksumpolicy/> </snapshots> <uppolicy/> <url/> <url/> <url/> <url/>. </pluginRepository> </profile> </profiles>
ActiveProfiles
<!-프로파일 목록을 수동으로 활성화하고 프로파일이 적용되는 순서로 활성 프로파일을 정의하십시오. 이 요소에는 ActiveProfile 요소 세트가 포함되어 있으며 각 요소는 프로파일 ID를 포함합니다. ActiveProfile에 정의 된 모든 프로파일 ID는 환경 설정에 관계없이 활성화됩니다. 일치하는 프로필이 없으면 아무 일도 일어나지 않습니다. 예를 들어, Env-Test가 ActiveProfile 인 경우 POM.XML (또는 Profile.xml)의 ID에 해당하는 프로파일이 활성화됩니다. 달리기 중에 그러한 프로필을 찾을 수없는 경우 Maven은 평소와 같이 실행됩니다. -> <ActiveProfiles> <!-> <tockprofile> Env-Test </activeProfile> </activeProfiles> </settings>
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.