2015-12-12 9 views
10

Repo'unun spesifik repolarına yayın yapın. Maven ile alışkın olduğum yapıya benzer nesneleri (APK/aar dosyaları) oluşturma işlemini kurmaya çalışıyorum.Artifactory'nin

mvn release:prepare (Adjusts version, checks into SVN, creates the tag) 
mvn release:perform -Dgoals=deploy (Pushes the artifact to http://artifactory.XXX.local/artifactory/libs-releases-local/) 

Gradle komutlarını çalıştırabilmek ve benzer sonuçlara ulaşmak istiyorum. Serbest bırakma yönetimi için https://github.com/researchgate/gradle-release eklentisini kullanıyorum (bu iyi çalışıyor, bu yüzden sürümle iyi durumdayım). my-lib-android-0.0.2> gradlew artifactoryPublish \: Ben komut gradlew artifactoryPublish çalıştırdığınızda

D (o gradle dosyasında repoKey saygı değilse gibi) Fakat eser başka yerde konuşlanmıştır. .. ... [buildinfo] Bu yapı için buildInfo özellikler dosyasını kullanmıyor. : artifactoryPublish Yapı tanımlayıcıyı dağıtma: http://artifactory.XXX.local/artifactory/api/build Başarıyla oluşturulmuştur dağıtıldı. http://artifactory.XXX.local/artifactory/webapp/builds/my-lib-android-0.0.2/1449880830949>

YAPI BAŞARILI

Toplam süre altında Artifactory bunu tarayın: 9,692 saniye

Benim soru eser benzer bir URL'ye itildiği şekilde benim kurulum düzeltebilirim nasıl

Bu:

http://artifactory.XXX.local/artifactory/libs-releases-local/com/example/my-lib-android/0.0.2/my-lib-android-0.0.2.aar 

build.gradle Dosya:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.3.0' 
     classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '3.1.2') 
     classpath 'net.researchgate:gradle-release:2.3.4' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 
plugins { 
    id 'net.researchgate.release' version '2.3.4' 
} 

apply plugin: "com.jfrog.artifactory" 
apply plugin: 'maven-publish' 
apply plugin: 'net.researchgate.release' 

allprojects { 
    repositories { 
     jcenter() 
     maven { 
      url 'http://artifactory.XXX.local/artifactory/libs-releases-local' 
     } 
    } 
} 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    //The base Artifactory URL if not overridden by the publisher/resolver 
    publish {  
     repository { 
      repoKey = "libs-releases-local" 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
    } 
} 

release { 
    revertOnFail = false 
} 
task build{ 

} 

gradle.properties Dosya:

version=my-lib-android-0.0.3-SNAPSHOT 
artifactory_user=myUserName 
artifactory_password=myPasssword 
artifactory_contextUrl=http://artifactory.XXX.local/artifactory 
+0

için okuyarak biraz, ben eklentisi 'id "com.jfrog.artifactory" sürümü "3.1.0"' eklendi ve ayrıca "artifactoryPublish {.. ..}" bloğu. Ama bu yardımcı olmadı. – PCM

+0

'maven-publish' kullanıyorsunuz, http://stackoverflow.com/questions/22352475/upload-artifact-to-artifactory adresine göre 'artifactory' yerine 'artifactory-publish' kullanmalısınız. mullen yayınlama eklentiniz için – RaGe

+0

-using-gradle herhangi bir "yayınlama" tanımladınız mı? – RaGe

cevap

0

android-maven eklentisi kullanarak:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.9.2' 
     classpath 'com.github.dcendents:android-maven-plugin:1.0' 
     classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.2.0' 
    } 
} 

apply plugin: 'android-library' 
apply plugin: 'com.jfrog.artifactory-upload' 
apply plugin: 'android-maven' 


configurations { 
    published 
} 

task sourceJar(type: Jar) { 
    from android.sourceSets.main.java 
    classifier "sources" 
} 

artifactoryPublish { 
    dependsOn sourceJar 
} 

artifacts { 
    published sourceJar 
} 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    publish { 
     repository { 
      repoKey = "libs-releases-local" 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
     } 
     defaults { 
      publishConfigs('archives', 'published') 
      publishPom = true //Publish generated POM files to Artifactory (true by default) 
      publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default) 
     } 
    } 
} 
+0

Şimdi "gradlew clean" komutunu çalıştırdığımda .. "** buildToolsVersion belirtilmemiş. **" – PCM

0

Genellikle böyle mavenDeployer-eklenti ile bunu. Durumunuzla eşleşip eşleşmediğini bilmiyoruz, ama burada bırakacağım.

apply plugin: 'maven' 
uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: 'http://arandom.nexus.com:8081/nexus/content/repositories/releases') { 
       authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD); 
      } 
      snapshotRepository(url: 'http://arandom.nexus.com:8081/nexus/content/repositories/snapshots') { 
       authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD); 
      } 
      pom.groupId = "groupId" 
      pom.artifactId = "artifactId" 
      pom.version = "${versionMajor}.${versionMinor}.${versionPatch}" 
     } 
    } 
} 

fazla kullanıcı @RaGe bir açıklama (şimdi kaldırıldı) dayanarak yerel repo here

+0

Henüz denemem! – PCM