2017-03-22 13 views
0

mvn install deploy을 저장소로 지정하면 ${repository-jars}이 의도 한대로이 종속성을 다른 사람이 사용할 수 있습니다. 소스를 넥서스에 업로드하면 스냅 샷 종속성을 사용할 수 없게됩니다.

우리는 이후에 다른 저장소 ${repository-sources}- 업로드 소스는 종속성이 더 이상 제대로 해결되지 합니다.

mvn deploy:deploy-file 
    -DgroupId=foo 
    -DartifactId=bar 
    -Dversion=1.0-SNAPSHOT 
    -Dfile=target/bar-sources.jar 
    -Dpackaging=jar 
    -Durl=${url} 
    -Dclassifier=sources 
    -DrepositoryId=${repository-sources} 

모든 넥서스에서 올바른 보이는 두 저장소는 일반 Repository Group에서 사용할 수 있습니다.

가설은 최신 업로드 된 이슈를 사용하려고 시도하고 sources 병을 다운로드하는 대신 classes 수식어를 무시한다는 가설입니다. 처음으로 소스를 업로드하여 확인한 후 ,maven deploy으로 지정하면 정상적으로 작동합니다.

배포 후 실행되는 별도의 작업으로 소스를 업로드 할 수있는 올바른 방법은 무엇입니까?

+0

절대적으로 필요한 별도의 단계로 배포하고 있습니까? 또한 그룹 레포를 사용하고 있다고 가정합니까? 귀하의 그룹 레포는 어떻게 생겼습니까? – DarthHater

+0

@DarthHater 예. 두 저장소가 모두 포함 된 일반 '저장소 그룹'을 사용하고 있습니다 (순서는 부적합한 것처럼 보입니다). 이들을 분리하여 보관하는 이유는 소스가 바이너리와 분리되어 있다는 것입니다. –

+0

자신과 다른 개발자가 생각하는 것은 그룹이 두 그룹 간의 메타 데이터를 병합하려고한다는 것입니다 (그룹을 사용하고 있기 때문에). 실제로 시도해 볼 수있는 것은 동일한 레포에 넣어 (공통 메타 데이터를 공유 할 수 있도록) 콘텐츠 선택기를 사용하여 구분하는 것입니다 (보안상의 이유로 별도로 유지한다고 생각하십니까?) : https://books.sonatype.com /nexus-book/reference3/admin.html#content-selectors – DarthHater

답변

1

Maven은 두 개의 다른 스냅 샷을 생성하고 있으며 최신으로 만들려고하면 설정 한 그룹에서 최신 소스 (소스)를 얻게됩니다.

실제로 시도해 볼 수있는 것은 동일한 repo에 넣고 Content Selectors을 사용하여 구분하는 것입니다. Nexus Repository 2의 최신 버전의 Repo Targets입니다.