« Previous - Version 3/5 (diff) - Next » - Current version
Alexey Demakov, 01/21/2016 01:51 pm


Services

build.gradle:

plugins {
  id 'org.sonarqube' version '1.0'
}

sonarqube {
     properties {
        property 'sonar.host.url', 'http://forge.ispras.ru:9000'
        property 'sonar.jdbc.url', 'jdbc:mysql://localhost:3306/sonar'
        property 'sonar.jdbc.driverClassName', 'com.mysql.jdbc.Driver'
        property 'sonar.jdbc.username', 'sonar'
        property 'sonar.jdbc.password', 'sonar'
    }
}

build.gradle:

plugins {
  id 'net.saliman.properties' version '1.4.4'
  id 'net.researchgate.release' version '2.3.5'
}

apply plugin: 'maven-publish'

repositories {
  maven {
    url 'http://forge.ispras.ru:8082/nexus/content/repositories/snapshots'
  }
  maven {
    url 'http://forge.ispras.ru:8082/nexus/content/repositories/releases'
  }
  jcenter()
}

project.group = projectGroup

release {
  failOnCommitNeeded = false

  versionPatterns = [
    // Increments build number: "0.2.5-alpha-150428" => "0.2.6-alpha-150428" 
    /(^\d+\.\d+\.)(\d+)(-[^-]*)(-[^-]*$)/: 
    { Matcher m, Project p -> m.replaceAll("${ m[0][1] }${ (m[0][2] as int) + 1 }${ m[0][3] }" ) }
  ]
}

String getCurrentDateString()  {
  new SimpleDateFormat( 'yyMMdd' ).format( new Date() )
}

task unSnapshotVersion.doLast {
  def version = project.version.toString()
  version += '-' + getCurrentDateString()
   project.plugins.getPlugin( net.researchgate.release.ReleasePlugin.class )
  .updateVersionProperty( version )
}

publishing {
  publications {
    maven(MavenPublication) {
      groupId projectGroup
      artifactId projectName
      version project.version

      from components.java
    }
  }
  repositories {
    maven {
      if(project.version.endsWith('-SNAPSHOT')) {
        url 'http://forge.ispras.ru:8082/nexus/content/repositories/snapshots'
      } else {
        url 'http://forge.ispras.ru:8082/nexus/content/repositories/releases'
      }
      credentials {
        username hasProperty('repoUser') ? repoUser : ''
        password hasProperty('repoPassword') ? repoPassword : ''
      }
      authentication {
        basic(BasicAuthentication)
      }
    }
  }
}

afterReleaseBuild.dependsOn publish

gradle.properties:

projectGroup=...
projectName=..
# gradle-release-plugin restriction: use only '=' as separator
version=...

gradle-local.properties:

repoUser=...
repoPassword=...

.gitignore:

gradle-local.properties

settings.gradle:

rootProject.name = projectName