2014-12-11 3 views
1

프로젝트마다 여러 가지 이슈를 게시하려고합니다.프로젝트마다 여러 이슈 게시하는 방법

How to upload an existing collection of 3rd-party Jars to a Maven server in Gradle?

나는이 솔루션을 적용하는 시도 - 같은

내 build.gradle 보이는 : 나는 문서 따르도록 노력 https://gist.github.com/anonymous/01b31c26eca7a507c14f

: ... http://www.gradle.org/docs/current/us

내가 `받는 것은 :

무엇이 잘못 되었는가 : 실행에 실패했습니다 : 'instal 엘'. '아카이브'구성을 게시 할 수 없습니다> POM은 동일한 유형 및 분류자를 가진 여러 아티팩트를 가질 수 없습니다. 이미 MavenArtifact my : jar : jar : null, MavenArtifact my : jar : jar : null을 추가하려고했습니다.

내 ENV : Gradle을 2.2.1

작성 시간 : 2014년 11월 24일 세계 협정시 09시 45분 35초 빌드 번호 : 없음 수정 : 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

그루비 : 2.3.6 개미 : 아파치 개미 (TM) 버전 1.9.3 2013 년 12 월 23 일 컴파일 JVM : 1.7.0_71 (Oracle Corporation 24.71-b01) 운영 체제 : Windows 8.1 6.3 amd64

감사합니다.

답변

1

고용주가 친절하게 차단하여 gist.github.com에 접속할 수 없습니다. 따라서 나는 당신이 정확히 무엇을 성취하고자 하는지를 모른다. 게시 한 링크 또는 프로젝트에서 만든 추가 이슈로 써드 파티 병을 게시하십시오.

후자가 불쾌한 스크립팅을 신경 쓸 필요가 없다면 Gradle이 전적으로 지원합니다. 게시 한 오류가 모든 것을 말합니다.

POM에는 동일한 유형 및 분류자를 가진 여러 아티팩트가있을 수 없습니다.

추가 이슈에 대해 분류자를 지정해야합니다.

배포 번들 (jar와 libs)이 포함 된 zip을 업로드하려고한다고 가정 해 보겠습니다. 그것은 다음과 같이 보일 것입니다 :

task('applicationBundle', type: Zip) { 
    classifier = 'distro' 
    // ... code for zipping appropriate files 
} 

artifacts { 
    archives applicationBundle 
} 

위의 예는 테스트하지 않았지만 그렇게해야합니다.

설명어 - 이슈 파일 이름에 접미사로 추가 될 분류 기호.

편집 : http://www.gradle.org/docs/current/dsl/org.gradle.api.publish.maven.MavenPublication.html

+0

안녕, 개미를 사용하려고 1. 난' - 빌드 항아리, 그리고 artifactory 그들을 게시하는 것입니다. 목표는 제공된 이름을 유지하는 것입니다, 그래서 나는 분류자를 피하려고했습니다. 각 유물에 대해 POM을 계산하지만이 솔루션은 작동하지 않는 것처럼 보입니다. 2. Maven-publish 플러그인은 현재 솔루션에 대한 옵션이 아닙니다. 제가 사용하려고 시도한 솔루션이 이전 릴리스에서 작동하고 있다고 생각합니다. 내가 얼마간 시간을 찾을 수있게되면, 나는 다른 그라데이션 버전에서 그 접근법을 시도 할 것이다. – user1743795

+0

분류자를 사용하지 않고 같은 그룹 ID 및 버전으로 여러 이슈를 게시 할 수 없습니다. 물리적으로 가능하지만 Maven에는 유효하지 않다는 의미입니다. 나중에 종속성으로 참조 할 수 없습니다. 다른 아티팩트 (동일한 그룹 및 버전이지만 이슈 이름이 다른)로 게시하거나 jars 업로드를 위해 다른 것을 사용하십시오 (심지어 FTP 또는 SCP 원격 저장 장치). – topr

+0

어쩌면 옵션은 각 개미 병을 gradle 모듈 (하위 프로젝트)으로 빌드하는 것입니다. 모듈은 생성 된 jar와 동일한 이름을 가져야합니다. 그런 다음 게시는 분류 자없이 모듈 당 하나의 항아리가 있어야합니다. 분명히 그것들은 메이븐에 별도의 인공물로 출판 될 것이지만, 메이븐 구조가 어떻게 작동하는지는 분명합니다. – topr

3

안녕 현재 내가 같은 문제를했습니다 : 당신이 의 새로운 잠복기 API를 사용하는 경우 여기 메이븐와 상호 작용 플러그인을 받는다는 게시 당신을 위해 관련 예제 (소스에 추가 항아리를 게시)입니다 ,하지만 다른 맥락에서. 내 Java 프로젝트에서 proguard를 사용하고 있으며 obiuvsly gradle을 사용하는 두 가지 인공물이 필요합니다. 난독 처리 된 Proguard 작업을 만들었습니다.항아리 :

task proguard(type: proguard.gradle.ProGuardTask) 
    {             
     injars 'build/libs/foundation.jar' 
     outjars 'build/libs/foundationObfuscated.jar' 
    } 

우리는 기본 하나에 우리의 새 이슈를 추가 할 필요가 두 번째 시간 :

artifacts 
{ 
    archives(file: file("$projectDir/build/libs/foundationObfuscated.jar"), 
    builtBy: proguard) 
      { 
       classifier = 'obfuscated' 
      } 
} 

기본 하나에서 새로운 '분류'다른를 추가해야 할 가장 중요한 것은 . 이 구성에서는 아카이브를 이전 작업 ('proguard')에 따라 다르게 지정합니다. 마지막으로 우리는이 개 유물 업로드 할 수 있습니다. 나는 두 개의 다른 유물 (일반 하나는 '$ {versionMajorDevelop}을 게시하고자에서 지정할하고있어 여기에

uploadArchives { 
    repositories.mavenDeployer { 

     pom.groupId = 'com.groupid' 
     pom.artifactId = 'artifactid' 
     pom.version = "${versionMajorDevelop}.${buildTime()}" 

     repository(url: "file://${workingLocalDirArtifact()}") 
    } 
} 

을 $ {빌드는()} - 난독 화 ' 로컬 저장소에서'workingLocalDirArifact '하지만 당신은 난독 화 작업을 실행 기본적 Gradle을하여. 를 다른 구성을 사용할 수 있습니다, 당신은 여러 유물을 게시 한 것입니다.

관련 문제