[scm][1/4] Remove unsupported Groovy versions: support only supported Groovy versions. Begin the switch to Bintray/Artifactory as the publishing route, replacing Codehaus.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[scm][1/4] Remove unsupported Groovy versions: support only supported Groovy versions. Begin the switch to Bintray/Artifactory as the publishing route, replacing Codehaus.

Russel Winder-4
Commit
be64397435e5e5537e3cc2fee4510010d290cc98
Branch
master
Author
Russel Winder <[hidden email]>
Date
Tue, 3 Mar 2015 17:52:52 +0000
Message
Remove unsupported Groovy versions: support only supported Groovy versions. Begin the switch to Bintray/Artifactory as the publishing route, replacing Codehaus.

Changed file build.gradle

16 16  //
17 17  //  Author: Russel Winder <[hidden email]>
18 18  
19  plugins {
20    id 'com.jfrog.bintray' version '1.0'
21    id 'com.jfrog.artifactory' version '3.0.1'
22  }
23  
19 24  import org.apache.tools.ant.filters.ReplaceTokens
20 25  
21 26  ext.artifact = 'gant'
53 58  final groovyArtefactName = 'groovy-all'
54 59  
55 60  ext.groovyVersions = [
56    '2.0': '2.0.8',
57    '2.1': '2.1.9',
58    '2.2': '2.2.2',
59    '2.3': '2.3.9',
60    '2.4': '2.4.0',
61    '2.3': '2.3.10',
62    '2.4': '2.4.1',
61 63  ]
62 64  
63 65  //  One series of Groovy needs using for the standalone distribution. This version of Groovy will be packaged with
86 88  ext.distributionTasks = []
87 89  ext.debTasks = []
88 90  
89  //  Using the JackRabbit wagon gets round some problems associated with uploading the distributions that
90  //  occurs with the standard wagon.  However, it does not solve the problem of not creating missing
91  //  directories that gives difficulties with new artefact uploads.  Have to cadaver in and create the
92  //  hierarchy first:-( Using the lightweight HTTP wagon still requires creating the directory structure
93  //  with cadaver or equivalent:-(
94  
95  final webdavWagonName = 'org.apache.maven.wagon:wagon-webdav-jackrabbit:2.5'
96  //final webdavWagonName = 'org.apache.maven.wagon:wagon-http-lightweight:2.5'
97  
98 91  //  In creating distributions which include jar files for the source, javadoc, and groovydoc, it is
99 92  //  imperative to ensure that they do not get located into the library directory for jars containing
100 93  //  compiled code for execution: it is critical to avoid getting the source, javadoc, and groovydoc jars on
156 149      }
157 150    }
158 151    repositories{
159      if (project.hasProperty('gant_useMavenLocal'&& gant_useMavenLocal) { mavenLocal() }
152      if (gant_useMavenLocal) { mavenLocal() }
153      jcenter()
160 154      mavenCentral()
161      maven{url 'http://repository.codehaus.org/'}
162 155    }
163 156    dependencies{
164 157      compile(
167 160      )
168 161      testCompile 'junit:junit:4.12'
169 162      testRuntime 'org.apache.ivy:ivy:2.4.0'
170      deployJars webdavWagonName
171 163    }
172 164    compileGroovy.options.compilerArgs = ['-Xlint']
173 165    [compileGroovy, compileTestGroovy]*.options*.encoding = 'UTF-8'
179 171      //  Gradle build or not.  Use a property.
180 172      systemProperties['buildFrameworkIdentifier'] = 'Gradle'
181 173    }
182    clean.doLast{
183      delete 'texput.log', 'target_forMavenTest'
184    }
174    clean.doLast{ delete 'texput.log', 'target_forMavenTest' }
185 175    task integTest(type: Test, dependsOn: /* 'assemble' */ 'classes') {
186 176      include file('src/integTest/groovy').absolutePath + '/org/codehaus/gant/ant/tests/*_Test.*'
187 177    }
188    if (signingPropertiesAreSet()) {
189      signing{sign configurations.archives}
190    }
178    if (signingPropertiesAreSet()) { signing{sign configurations.archives} }
191 179    final packageTitle = 'Gant ' + gantVersion
192 180    final copyrightString = 'Copyright &#169; 2006&#8211;2015  The Codehaus.  All Rights Reserved.'
193 181    javadoc{
588 576  
589 577  // =====================================================================
590 578  //
591  //  Tasks for getting all the distribution materials uploaded to Codehaus.
579  //  Do a complete release.
592 580  
593  final checkAuthority = {->
594    if (! project.hasProperty('gant_experimentalDistributionLocation') && !(project.hasProperty('codehausUsername') && project.hasProperty('codehausPassword'))) {
595      throw new RuntimeException('Must define both codehausUsername and codehausPassword to upload distributions.')
596    }
597  }
581  final archivesUploadTasks = []
582  forEachDistributionVersion{archivesUploadTasks << ':' + it + ':uploadArchives'}
598 583  
599  final undertakeUpload = {copySpec, uploadSpec ->
600    if (project.hasProperty('gant_experimentalDistributionLocation')) {
601      if (! gant_experimentalDistributionLocation) { throw new RuntimeException('gant_experimentalDistributionLocation value not reasonable.') }
602      copy copySpec
584  //task uploadRelease(dependsOn: archivesUploadTasks + [uploadDistribution, uploadDebs], description: 'Upload all elements of a release.')
585  
586  bintray {
587      user = project.properties.bintrayUser
588      key = project.properties.bintrayKey
589      publish = false
590      dryRun = true
591      configurations = ['archives']
592      pkg {
593          userOrg = 'gant'
594          repo = 'maven'
595          name = 'gant'
596          desc = project.description
597          labels = ['groovy','gant']
598          publicDownloadNumbers = true
599          websiteUrl = 'http://gant.github.io'
600          issueTrackerUrl = 'https://github.com/Gant/Gant/issues'
601          vcsUrl = 'https://github.com/Gant/Gant.git'
602          licenses = ['Apache-2.0']
603          version {
604              name = project.version
605              vcsTag = "v${project.version}"
606              gpg {
607                  sign = false
608                  passphrase = project.properties.bintrayGpgPassphrase
609              }
610  //            mavenCentralSync {
611  //                sync = true //Optional (true by default). Determines whether to sync the version to Maven Central.
612  //                user = 'userToken' //OSS user token
613  //                password = 'paasword' //OSS user password
614  //                close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually.
615  //            }
616          }
603 617      }
604    else {
605      configurations{upload}
606      repositories{
607        if (project.hasProperty('gant_useMavenLocal') && gant_useMavenLocal) { mavenLocal() }
608        mavenCentral()
609 618  }
610      dependencies { upload 'com.googlecode.sardine:sardine:146' }
611      assert uploadSpec.size() == 2
612      final targetDirectoryUrl = 'https://dav.codehaus.org/' + (gantVersion.contains('SNAPSHOT') ? 'snapshots.' : '') + 'dist/gant/' + uploadSpec[0]
613 620  /*
614      com.googlecode.sardine.Sardine sardine = com.googlecode.sardine.SardineFactory.begin(codehausUsername, codehausPassword)
621  bintrayUpload {
622      dependsOn build, jarDoc, jarSrc
623      onlyIf{project.properties.bintrayUser && project.properties.bintrayKey && !version.contains('SNAPSHOT')}
624  }
615 625  */
626  
627  artifactory {
628      publish {
629          contextUrl = 'http://oss.jfrog.org'
630          repository {
631              repoKey = 'oss-snapshot-local'
632              username = project.properties.bintrayUser
633              password = project.properties.bintrayKey
616 634          }
617 635      }
618  
619  task buildDistribution(dependsOn: distributionTasks, description: 'Build all the uploadable distribution archives.')
620  
621  task uploadDistribution(dependsOn: buildDistribution, description: 'Upload all the distribution archives.') << {
622    checkAuthority()
623    undertakeUpload(
624      {
625        distributionTasks.each { task -> from task }
626        into rootProject.buildDir.absolutePath + '/' + gant_experimentalDistributionLocation + '/distributions'
627      },
628      ['distributions', distributionTasks])
629 636  }
630 637  
631  // =====================================================================
632  //
633  //  Tasks for getting all the debs uploaded to Codehaus.
634  
635  task buildDebs(dependsOn: debTasks, description: 'Build all the uploadable debs.')
636  
637  task uploadDebs(dependsOn: buildDebs, description: 'Upload all the debs.') << {
638    checkAuthority()
639    undertakeUpload(
640      {
641        debTasks.each{task -> from task}
642        into rootProject.buildDir.absolutePath + '/' + gant_experimentalDistributionLocation + '/debs'
643      },
644      ['debs', debTasks])
638  artifactoryPublish {
639      onlyIf{project.properties.bintrayUser && project.properties.bintrayKey && version.contains('SNAPSHOT')}
645 640  }
646 641  
647  
648  // =====================================================================
649  //
650  //  Do a complete release.
651  
652  final archivesUploadTasks = []
653  forEachDistributionVersion{archivesUploadTasks << ':' + it + ':uploadArchives'}
654  
655  task uploadRelease(dependsOn: archivesUploadTasks + [uploadDistribution, uploadDebs], description: 'Upload all elements of a release.')
642  /*
643  task release(dependsOn: ['build', 'jarSrc', 'jarDoc', 'zipSamples', 'zipJavaDemo', 'zipDist', 'zipGuide']) << {
644      println 'We release now'
645  }
646  */
656 647  
657 648  // =====================================================================
658 649  //