Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

build.gradle 4.5KB

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