You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. // DMDirc plugins build script
  2. subprojects {
  3. def jgit = new org.mdonoughe.JGitDescribeTask()
  4. jgit.dir = new File(projectDir.parent, '.git')
  5. jgit.subDir = projectDir
  6. project.version = jgit.getDescription() + '-SNAPSHOT'
  7. apply plugin: 'java'
  8. apply plugin: 'findbugs'
  9. apply plugin: 'pmd'
  10. configurations {
  11. bundle
  12. compile {
  13. extendsFrom bundle
  14. }
  15. }
  16. sourceSets {
  17. main {
  18. java.srcDirs = ['src']
  19. resources.srcDirs = ['res']
  20. }
  21. test {
  22. java.srcDirs = ['test']
  23. resources.srcDirs = ['test-res']
  24. }
  25. }
  26. sourceCompatibility = 1.8
  27. targetCompatibility = 1.8
  28. repositories {
  29. mavenCentral()
  30. maven {
  31. url 'http://artifactory.dmdirc.com/artifactory/repo'
  32. }
  33. }
  34. dependencies {
  35. compile group: 'com.dmdirc', name: 'client', version: '+', changing: true
  36. compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0'
  37. compile group: 'com.squareup.dagger', name: 'dagger-compiler', version: '1.2.1'
  38. testCompile group: 'junit', name: 'junit', version: '4.12'
  39. testCompile group: 'org.mockito', name: 'mockito-all', version: '1.10.17'
  40. pmd group: 'net.sourceforge.pmd', name: 'pmd-core', version: '5.2.3'
  41. pmd group: 'net.sourceforge.pmd', name: 'pmd-java', version: '5.2.3'
  42. }
  43. task copyPluginConfig(type: Copy) {
  44. from 'plugin.config'
  45. into "$buildDir"
  46. }
  47. task updatePluginConfig(dependsOn: copyPluginConfig) << {
  48. def targetFile = new File(buildDir, 'plugin.config')
  49. targetFile << "\n\nversion:\n number=${project.version}"
  50. targetFile << "\n\nbuildenv:\n"
  51. def compileConfiguration = project.configurations.getByName("compile")
  52. def resolvedConfiguration = compileConfiguration.resolvedConfiguration
  53. def resolvedArtifacts = resolvedConfiguration.resolvedArtifacts
  54. resolvedArtifacts.each { dp ->
  55. def version = dp.moduleVersion.id
  56. targetFile << " " + version.group + " " + version.name + " " + version.version + "\n"
  57. }
  58. }
  59. pmd {
  60. ruleSets = []
  61. ruleSetFiles = files("$rootDir/etc/pmd/full.xml")
  62. toolVersion = '5.2.3'
  63. ignoreFailures = true
  64. }
  65. pmdMain.doLast {
  66. copy {
  67. from pmd.reportsDir
  68. into "../pmd/"
  69. include "*.html"
  70. rename "main.html", "${project.name}-main.html"
  71. }
  72. }
  73. tasks.withType(FindBugs) {
  74. reports {
  75. html.enabled = true
  76. xml.enabled = false
  77. }
  78. }
  79. findbugs {
  80. reportLevel = 'low'
  81. effort = 'max'
  82. ignoreFailures = true
  83. }
  84. jar {
  85. from("$buildDir/plugin.config") {
  86. into 'META-INF'
  87. }
  88. from { configurations.bundle.collect { it.isDirectory() ? it : zipTree(it) } } {
  89. exclude 'META-INF/**'
  90. }
  91. }
  92. jar.doLast {
  93. copy {
  94. from jar.archivePath
  95. into "../dist/"
  96. rename ".*", "${project.name}.jar"
  97. }
  98. copy {
  99. from jar.archivePath
  100. into "../dist-versioned/"
  101. rename ".*", "${project.name}-${project.version}.jar"
  102. }
  103. }
  104. jar.outputs.file "../dist/${project.name}.jar"
  105. jar.outputs.file "../dist-versioned/${project.name}-${project.version}.jar"
  106. jar.dependsOn updatePluginConfig
  107. }
  108. allprojects {
  109. configurations.all {
  110. resolutionStrategy.cacheDynamicVersionsFor 2, 'minutes'
  111. resolutionStrategy.cacheChangingModulesFor 2, 'minutes'
  112. }
  113. }
  114. buildscript {
  115. repositories {
  116. mavenCentral()
  117. maven {
  118. url 'http://artifactory.dmdirc.com/artifactory/repo'
  119. }
  120. }
  121. dependencies {
  122. classpath group: 'com.github.shanemcc', name: 'jgit-describe', version: '0.5'
  123. classpath group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '2.3.1.+'
  124. }
  125. }
  126. task wrapper(type: Wrapper) {
  127. gradleVersion = '2.2.1'
  128. }
  129. subprojects.each { evaluationDependsOn it.path }
  130. task jar(dependsOn: subprojects*.jar)
  131. task test(dependsOn: subprojects*.test)
  132. tasks.dependencies.dependsOn subprojects*.tasks.dependencies
  133. def plugin(name) {
  134. if (allprojects.find { it.name == name }) {
  135. project(name)
  136. } else if (allprojects.find { it.name == 'plugins:' + name }) {
  137. project('plugins:' + name)
  138. } else if (allprojects.find { it.name == 'modules:plugins:' + name }) {
  139. project('modules:plugins:' + name)
  140. } else {
  141. println "Couldn't find project $name"
  142. }
  143. }