2017-10-20 49 views
2

J'ai un projet mis en place avec CI et la construction gradle, et je veux ajouter une tâche progressive pour publier un pot quelque part nous pouvons y accéder chaque fois qu'une construction de CI s'exécute. Je ne sais même pas (ou ne me soucie pas) du service sur lequel je téléchargerais; tout fonctionne.Comment publier jar quelque part sur internet via la tâche gradle?

Répondre

0

Vous pouvez publier bintray.com (de JFrog).

Cela vous donnera une prise en pension vous pouvez utiliser comme ceci:

repositories { 
    maven { 
     url 'https://dl.bintray.com/yourOrg/yourRepo/' 
    } 
} 

Alors si vous obtenez sérieux, la synchronisation automatique sur dépôt jcenter() est un simple clic et l'approbation loin.

Pour télécharger via la tâche gradle:

plugins { 
    id 'com.jfrog.bintray' version '1.7.3' 
} 
apply plugin: 'maven-publish' 

group 'com.example' //your group ID 
version '0.1'  //your version 

//required for jcenter 
task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

//required for jcenter 
task javadocJar(type: Jar, dependsOn: javadoc) { 
    classifier = 'javadoc' 
    from javadoc.destinationDir 
} 

artifacts { 
    archives jar 
    archives sourcesJar //required for jcenter 
    archives javadocJar //required for jcenter 
} 

publishing { 
    publications { 
     MyPublication(MavenPublication) { 
      groupId group 
      artifactId 'Base58' 
      version project.version 
      //again, sources and javadoc required for jcenter 
      artifact("$buildDir/libs/projectName-${project.version}-sources.jar") { 
       classifier = 'sources' 
      } 
      artifact("$buildDir/libs/projectName-${project.version}-javadoc.jar") { 
       classifier = 'javadoc' 
      } 
      artifact("$buildDir/libs/projectName-${project.version}.jar") 
     } 
    } 
} 

// To upload a new version 
// ./gradlew clean 
// ./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY 
bintray { 
    user = project.ext.properties.user 
    key = project.ext.properties.key 
    publications = ['MyPublication'] 
    pkg { 
     repo = 'YourBinTrayRepo' 
     name = 'YourBinTrayProjectName' 
     userOrg = 'YourBinTrayOrganizationIfApplicable' 
     licenses = //any licences applicable 
     vcsUrl = 'URL to source' 
     version project.version 
    } 
} 

donc à télécharger:

./gradlew clean 
./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY 

Sautez ensuite sur bintray frapper publier.