publish-mavencentral.gradle 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. apply plugin: 'maven'
  2. apply plugin: 'signing'
  3. def sonatypeRepositoryUrl
  4. def isReleaseBuild() {
  5. return VERSION_NAME.contains("SNAPSHOT") == false
  6. }
  7. if (isReleaseBuild()) {
  8. println 'RELEASE BUILD'
  9. sonatypeRepositoryUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
  10. } else {
  11. println 'DEBUG BUILD'
  12. sonatypeRepositoryUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
  13. }
  14. def getRepositoryUsername() {
  15. return hasProperty('nexusUsername') ? nexusUsername : ""
  16. }
  17. def getRepositoryPassword() {
  18. return hasProperty('nexusPassword') ? nexusPassword : ""
  19. }
  20. afterEvaluate { project ->
  21. uploadArchives {
  22. repositories {
  23. mavenDeployer {
  24. beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
  25. pom.groupId = GROUP_ID
  26. pom.artifactId = POM_ARTIFACT_ID
  27. pom.version = VERSION_NAME
  28. repository(url: sonatypeRepositoryUrl) {
  29. authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
  30. }
  31. pom.project {
  32. name POM_NAME
  33. packaging POM_PACKAGING
  34. description POM_DESCRIPTION
  35. url POM_URL
  36. scm {
  37. url POM_SCM_URL
  38. connection POM_SCM_CONNECTION
  39. developerConnection POM_SCM_DEV_CONNECTION
  40. }
  41. licenses {
  42. license {
  43. name POM_LICENCE_NAME
  44. url POM_LICENCE_URL
  45. distribution POM_LICENCE_DIST
  46. }
  47. }
  48. developers {
  49. developer {
  50. id POM_DEVELOPER_ID
  51. name POM_DEVELOPER_NAME
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }
  58. signing {
  59. required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
  60. println 'Signing archives...'
  61. sign configurations.archives
  62. }
  63. task androidJavadocs(type: Javadoc) {
  64. source = android.sourceSets.main.java.sourceFiles
  65. options {
  66. links "http://docs.oracle.com/javase/7/docs/api/"
  67. linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
  68. }
  69. classpath += project.android.libraryVariants.toList().first().javaCompile.classpath
  70. classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
  71. }
  72. task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
  73. classifier = 'javadoc'
  74. from androidJavadocs.destinationDir
  75. }
  76. task androidSourcesJar(type: Jar) {
  77. classifier = 'sources'
  78. from android.sourceSets.main.java.sourceFiles
  79. }
  80. artifacts {
  81. archives androidSourcesJar
  82. archives androidJavadocsJar
  83. }
  84. }