2017-11-10 5 views
1

de.fanero.gradle.plugin.nar 플러그인 (https://github.com/sponiro/gradle-nar-plugin)을 사용하여 Nifi NAR 파일을 만드는 Gradle 프로젝트가 있습니다.Gradle에서 artifactory plugin의 발행물을 정의하는 방법

buildscript { 
    repositories { 
     mavenCentral() 
     maven { url 'http://dl.bintray.com/sponiro/gradle-plugins' } 
    } 
    dependencies { 
     classpath group: 'de.fanero.gradle.plugin.nar', name: 'gradle-nar-plugin', version: '0.1' 
    } 
} 

apply plugin: 'de.fanero.gradle.plugin.nar' 
apply plugin: 'java' 

dependencies { 
    ... 
} 

는 지금은 com.jfrog.artifactory 플러그인을 사용하여 Jfrog Artifactory에 NAR 파일을 업로드 할 수 있습니다. 나는 출판물 정의에 어려움을 겪고있다. 아래의 정의와 비슷한 것을 시도했지만 실패했습니다.

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from project.components.java 
     } 
    } 
} 

내가 그렇게 관리하는 유일한 방법은 명시 적으로 파일 경로를 정의하는 것입니다,하지만 난 마지막 수단으로 사용하고 싶습니다.

nar(MavenPublication) { 
    artifact file("build/libs/my-custom-nar-1.0-SNAPSHOT.nar") 
} 

나는 모든 제안을 이해할 것이다. 감사.

답변

3

확실하지 무엇 NAR이 있지만, 나는이 같은 구성으로 사용자 정의, 비 JAR, 유물을 발표했습니다

  1. 이 유물을 정의합니다.

    task deployableZIP(type: Zip) { 
        from 'deployable' 
        baseName = 'deployable' 
        destinationDir = buildDir 
    } 
    
  2. 구성 출판 : 그것은 ZIP 또는 JAR, 또는 TAR 될 수

    publishing { 
        publications { 
         main(MavenPublication) { 
          artifact source: deployableZIP, extension: 'zip' 
         } 
        } 
    } 
    

참고하는 deployableZIP 작업 자체에 대한 publications 블록 referres : 따옴표 단지를 작업 참조. 내가 믿는

은, 귀하의 경우, nar 작업이 이미 플러그인에 의해 생성된다, 그래서 당신이해야 할 것입니다 :

publishing { 
    publications { 
     main(MavenPublication) { 
      artifact source: nar, extension: 'nar' 
     } 
    } 
} 

그런 다음, 당신은 단지 Gradle Artifactory plugin에 그 출판물을 사용할 수 있습니다

artifactory { 
    contextUrl = 'http://artifacto.ry' 
    publish { 
     repository { 
      repoKey = 'libs-snapshot-local' 
      username = 'darth_vader' 
      password = 'padme' 
     } 
     defaults { 
      publications('main') 
      publishArtifacts = true 
     } 
    } 
} 

수십 개의 예제를 사용할 수 있습니다. here.

+1

'인공물 출처 : nar.archivePath'로 충분합니다. :) – Grzes