2014-11-20 19 views
13

dan Artifactory için benim build.gradle:Yayıncılık kavanoz hem de kaynaklar kavanoz İşte Gradle

  • Ben gradle clean build groovydoc sourcesJar dist yayınlamak zorunda benim JAR inşa etmek ve daha sonra
  • : Bu akım kurulum dayanarak

    buildscript { 
        repositories { 
         maven { 
          url 'http://localhost:8081/artifactory/plugins-release' 
          credentials { 
           username = "admin" 
           password = "password" 
          } 
          name = "maven-main-cache" 
         } 
        } 
        dependencies { 
         classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1" 
        } 
    } 
    
    apply plugin: 'groovy' 
    apply plugin: 'maven' 
    apply plugin: 'codenarc' 
    apply plugin: 'maven-publish' 
    apply plugin: "com.jfrog.artifactory" 
    
    version="0.0.2" 
    group = "mylib" 
    
    repositories { 
        mavenCentral() 
        add buildscript.repositories.getByName("maven-main-cache") 
        maven { 
         url "http://localhost:8081/artifactory/myapp-snapshots" 
        } 
    } 
    
    dependencies { 
        compile 'commons-validator:commons-validator:1.4.0' 
        testCompile 'junit:junit:4.11' 
    } 
    
    artifactory { 
        contextUrl = "http://localhost:8081/artifactory" 
        publish { 
         repository { 
          repoKey = 'myorg-snapshots' 
          username = "admin" 
          password = "password" 
          maven = true 
         } 
         defaults { 
          publications ('mavenJava') 
         } 
        } 
    } 
    
    publishing { 
        publications { 
         mavenJava(MavenPublication) { 
          from components.java 
         } 
        } 
    } 
    
    task sourcesJar(type: Jar, dependsOn: classes) { 
        classifier = 'sources' 
        from sourceSets.main.allSource 
    } 
    
    artifacts { 
        archives sourcesJar 
    } 
    
    task dist(type: Zip, dependsOn: build) { 
        classifier = 'buildreport' 
    
        from('build/test-results') { 
         include '*.xml' 
         into 'tests' 
        } 
    
        from('build/reports/codenarc') { 
         into 'reports' 
        } 
    
        from('build/docs') { 
         into 'api' 
        } 
    
        from(sourcesJar) { 
         into 'source' 
        } 
    
        from('build/libs') { 
         exclude '*-sources.jar' 
         into 'bin' 
        } 
    } 
    

  • Artifactory'de yayımlamak için, ikinci bir komutu gradle artifactoryPublish
Burada değiştirmek için arıyorum

İki şey:

  1. gradle artifactoryPublish sadece benim yapılı JAR ve Artifactory için dinamik olarak oluşturulmuş POM yayınlamaktadır. Yapımın yarattığı JAR kaynaklarını da yayınlamayı çok isterim. Nasıl?; ve
  2. İdeal sadece gradle publish yürütmesini yerine sırayla 2 komutları çalıştırmak zorunda yukarıdaki tüm yapabilmek istiyorum. Bu mümkün mü? Öyleyse nasıl?
+0

Cevabımı gör ve işe yararsa bildirin. – Opal

cevap

15

o aşağıdaki şekilde komut dosyasını değiştirmek için gereken yayın kaynağına gelir:

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
      artifact (sourcesJar) { 
       classifier = 'sources' 
      } 
     } 
    } 
} 

bunu yapmanız gereken tek komutla gelen görevler arasında bağımlılıkları tanımlamaktır. Ne yazık ki, komut dosyasını deneyemiyorum, bu yüzden gereksiz olabilir ancak işi yapmalıyım:

artifactoryPublish.dependsOn('clean', 'build', 'groovydoc', 'sourcesJar', 'dist') 
publish.dependsOn(artifactoryPublish) 
+0

'cleaniftoryPublish' öğesine bağımlılık olarak 'temiz' eklemek bazı tuhaf bir nedenden dolayı herşeyin oluşturulmasına, sonra temizlenmesine, sonra yayınlamaya çalışmasına neden oluyor. Bu, artık yayınlanacak hiçbir şey olmadığından açık bir şekilde başarısız oluyor. Her şeyden önce 'temiz' olmayı nasıl zorlayabilirim? – agent154

+0

Bir çözüm (en iyisi olmasa da bilmiyorum) aşağıdakileri kullanmak olacaktır: 'compileJava.dependsOn ('clean')' – agent154

+0

'artifactoryPublish' dahili olarak tanımlanmış bağımlılıkları olabilir. Yarın kontrol edeceğim. – Opal

İlgili konular