15.3. mvn URL Handler
15.3.1. 개요
Maven을 사용하여 번들을 빌드하거나 Maven 리포지토리에서 특정 번들을 사용할 수 있는 경우 Mvn 처리기 스키마를 사용하여 번들을 찾을 수 있습니다.
Mvn URL 처리기에서 로컬 및 원격 Maven 아티팩트를 찾을 수 있도록 Mvn URL 처리기 구성을 사용자 지정해야 할 수 있습니다. 자세한 내용은 15.3.5절. “Mvn URL 처리기 구성”의 내용을 참조하십시오.
15.3.2. 구문
Mvn URL 구문은 다음과 같습니다.
mvn:[repositoryUrl!]groupId/artifactId[/[version][/[packaging][/[classifier]]]]
여기서 repositoryUrl 은 선택적으로 Maven 리포지토리의 URL을 지정합니다. groupId,artifactId,version,packaging, classifier 는 Maven 아티팩트를 찾기 위한 표준 Maven 좌표입니다.
15.3.3. 좌표 생략
Mvn URL을 지정하는 경우 groupId 및 artifactId 좌표만 필요합니다. 다음 예제에서는 groupId,org.fusesource.example
및 artifactId,bundle-demo
를 사용하여 Maven 번들을 참조합니다.
mvn:org.fusesource.example/bundle-demo mvn:org.fusesource.example/bundle-demo/1.1
첫 번째 예와 같이 버전이 생략되면 기본값은 LATEST
이며 사용 가능한 Maven 메타데이터를 기반으로 최신 버전으로 해석됩니다.
패키징 또는 버전 값을 지정하지 않고 분류자 값을 지정하려면 Mvn URL에 간격을 둘 수 있습니다. 마찬가지로 버전 값 없이 패키징 값을 지정하려면 다음을 수행합니다. 예를 들면 다음과 같습니다.
mvn:groupId/artifactId///classifier mvn:groupId/artifactId/version//classifier mvn:groupId/artifactId//packaging/classifier mvn:groupId/artifactId//packaging
15.3.4. 버전 범위 지정
Mvn URL에 version 값을 지정하는 경우 간단한 버전 번호 대신 버전 범위(표준 Maven 버전 범위 구문을 사용하여)를 지정할 수 있습니다. 대괄호[
및 ]
-를 사용하여 포함 범위를 나타냅니다(
및 )
- 독점 범위를 나타냅니다. 예를 들어 범위 [1.0.4,2.0)
는 1.0.4 Cryostat
와 일치합니다. 다음과 같이 Mvn URL에서 이 버전 범위를 사용할 수 있습니다.
v
< 2.0을 충족하는 모든 버전 v
mvn:org.fusesource.example/bundle-demo/[1.0.4,2.0)
15.3.5. Mvn URL 처리기 구성
Mvn URL을 처음 사용하기 전에 다음과 같이 Mvn URL 처리기 설정을 사용자 지정해야 할 수 있습니다.
15.3.6. Mvn URL 설정 확인
Mvn URL 핸들러는 로컬 Maven 리포지토리에 대한 참조를 확인하고 원격 Maven 리포지토리 목록을 유지 관리합니다. Mvn URL을 확인할 때 처리기는 먼저 로컬 리포지토리를 검색한 다음 지정된 Maven Artifiact를 찾기 위해 원격 리포지토리를 검색합니다. Mvn URL을 해결하는 데 문제가 있는 경우 가장 먼저 수행해야 하는 작업은 처리기 설정을 확인하여 URL을 해결하기 위해 사용 중인 로컬 리포지토리와 원격 리포지토리를 확인하는 것입니다.
Mvn URL 설정을 확인하려면 콘솔에 다음 명령을 입력합니다.
JBossFuse:karaf@root> config:edit org.ops4j.pax.url.mvn JBossFuse:karaf@root> config:proplist
config:edit
명령은 config
유틸리티의 초점을 org.ops4j.pax.url.mvn
영구 ID에 속하는 속성으로 전환합니다. config:proplist
명령은 현재 영구 ID에 대한 모든 속성 설정을 출력합니다. org.ops4j.pax.url.mvn
에 중점을 두고 다음과 유사한 목록이 표시됩니다.
org.ops4j.pax.url.mvn.defaultRepositories = file:/path/to/JBossFuse/jboss-fuse-7.11.1.fuse-7_11_1-00013-redhat-00003/system@snapshots@id=karaf.system,file:/home/userid/.m2/repository@snapshots@id=local,file:/path/to/JBossFuse/jboss-fuse-7.11.1.fuse-7_11_1-00013-redhat-00003/local-repo@snapshots@id=karaf.local-repo,file:/path/to/JBossFuse/jboss-fuse-7.11.1.fuse-7_11_1-00013-redhat-00003/system@snapshots@id=child.karaf.system org.ops4j.pax.url.mvn.globalChecksumPolicy = warn org.ops4j.pax.url.mvn.globalUpdatePolicy = daily org.ops4j.pax.url.mvn.localRepository = /path/to/JBossFuse/jboss-fuse-7.11.1.fuse-7_11_1-00013-redhat-00003/data/repository org.ops4j.pax.url.mvn.repositories = http://repo1.maven.org/maven2@id=maven.central.repo, https://maven.repository.redhat.com/ga@id=redhat.ga.repo, https://maven.repository.redhat.com/earlyaccess/all@id=redhat.ea.repo, https://repository.jboss.org/nexus/content/groups/ea@id=fuseearlyaccess org.ops4j.pax.url.mvn.settings = /path/to/jboss-fuse-7.11.1.fuse-7_11_1-00013-redhat-00003/etc/maven-settings.xml org.ops4j.pax.url.mvn.useFallbackRepositories = false service.pid = org.ops4j.pax.url.mvn
where the localRepository
setting shows the local repository location currently used by the handler and the repositories
setting shows the remote repository list currently used by the handler.
15.3.7. 구성 파일 편집
Mvn URL 처리기의 속성 설정을 사용자 지정하려면 다음 구성 파일을 편집합니다.
InstallDir/etc/org.ops4j.pax.url.mvn.cfg
이 파일의 설정을 사용하면 로컬 Maven 리포지토리의 위치를 명시적으로 지정하고 Maven 리포지토리, Maven 프록시 서버 설정 등을 제거할 수 있습니다. 이러한 설정에 대한 자세한 내용은 설정 파일의 주석을 참조하십시오.
15.3.8. 로컬 리포지토리의 위치 사용자 지정
특히 로컬 Maven 리포지토리가 기본이 아닌 위치에 있는 경우 로컬로 빌드하는 Maven 아티팩트에 액세스하려면 명시적으로 구성해야 할 수 있습니다. org.ops4j.pax.url.mvn.cfg
구성 파일에서 org.ops4j.pax.url.mvn.localRepository
속성의 주석을 제거하고 로컬 Maven 리포지토리의 위치로 설정합니다. 예를 들면 다음과 같습니다.
# Path to the local maven repository which is used to avoid downloading # artifacts when they already exist locally. # The value of this property will be extracted from the settings.xml file # above, or defaulted to: # System.getProperty( "user.home" ) + "/.m2/repository" # org.ops4j.pax.url.mvn.localRepository=file:E:/Data/.m2/repository
15.3.9. reference
mvn
URL 구문에 대한 자세한 내용은 원래 Pax URL Mvn Protocol 설명서를 참조하십시오.