Project

General

Profile

Services » History » Version 4

« Previous - Version 4/5 (diff) - Next » - Current version
Alexey Demakov, 01/21/2016 02:10 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