2012-03-31 3 views
4

uploadArchives과는 다른 별도의 업로드 작업을 사용하여 두 번째 jar 파일 세트를 로컬 maven 저장소에 게시 할 수없는 것 같습니다. 여기에 내 설치가 :여러 구성의 파일을 gradle의 maven에 업로드

위의 예상대로 작동합니다. 그럼 추가 configuration

configurations{ 
    guiceArchives 
} 

task guiceJar(type: Jar){ ... } 

task guiceSourcesJar(type: Jar){ ... } 

artifacts{ 
    guiceArchives guiceJar 
    guiceArchives guiceSourcesJar 
    //archives guiceJar 
    //archives guiceSourcesJar 
} 

gradle uploadArchives 확인 작업 실행,하지만 gradle uploadGuiceArchives 아무것도하지 않습니다 :

:core:guiceClasses UP-TO-DATE 
:core:guiceJar UP-TO-DATE 
:core:guiceSourcesJar UP-TO-DATE 
:core:jar UP-TO-DATE 
:core:sourcesJar UP-TO-DATE 
:core:uploadArchives 

BUILD FINISHED 

개인 guiceJarguiceSourcesJar 작업을 스스로 잘 작동하고 guiceArchives 구성의 내용을 인쇄하면 알 수 항아리는 정확하게 인공물로 포함됩니다.

I 시도 일시적으로 말을 불평하게 archives 구성에 guiceJarguiceSourcesJar 할당 :

A POM cannot have multiple artifacts with the same type and classifier. 

정확히 무엇인지 manual says을. 그래서 나는이 문제의 원인 인이 인공물 충돌이라고 생각했습니다.

그래서 나는 설명서가 큰 일을하지만 guiceJarguiceSourcesJararchives에 할당 할 때, 이는 알 수 있듯이이 addFilter를 사용하여 고정. guiceArchives에 다시 할당하고 gradle uploadGuiceArchives을 시도하면 아무런 효과가 없습니다.

다른 업로드 작업으로 여러 이슈를 업로드 할 수있는 방법이 있습니까?

솔루션 :

여기 @ 피터 Niederwieser가 제공하는 솔루션을 업데이트합니다.

그냥이 추가

uploadGuiceArchives { 
    repositories { 
    mavenDeployer { 
     repository(url: project.releaseRepoUrl) 
     snapshotRepository(url: project.snapshotRepoUrl) 
    } 
    } 
} 

참고 :addFilter이 필요되지 않습니다.

감사합니다.

Edit2가 : 완성도를 들어

project.releaseRepoUrlproject.snapshotRepoUrl 다음과 같이 로컬 메이븐 저장소에 설정됩니다

project.ext{ 
    releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases" 
    snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots" 
} 
+0

여전히 동일한 프로젝트에서 구성 아티팩트를 지원하는 올바른 방법입니까? – cmcginty

+0

이 영역에서 주요 기능 업데이트를 찾지 못했으므로 여전히 유효하고 최선의 방법이라고 생각합니다. – rodion

답변

2

는 당신이 당신과 같은 uploadGuiceArchives에 대한 저장소를 정의하지 않았다고 할 수 uploadArchives에 대해 무엇을 했습니까?

+0

그게 다야, 고마워! 저장소 구성이 작업별로 있다는 사실을 완전히 파악하지 못했습니다. – rodion

관련 문제