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.

build.gradle 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. subprojects {
  2. def jgit = new org.mdonoughe.JGitDescribeTask()
  3. jgit.dir = new File(projectDir, '../.git')
  4. jgit.subdir = project.name
  5. project.version = jgit.getDescription() + '-SNAPSHOT'
  6. group = 'com.dmdirc.parser'
  7. apply plugin: 'maven-publish'
  8. apply plugin: 'java'
  9. apply plugin: 'signing'
  10. sourceSets {
  11. main {
  12. java {
  13. srcDir 'src'
  14. }
  15. }
  16. test {
  17. java {
  18. srcDir 'test'
  19. }
  20. }
  21. }
  22. publishing {
  23. publications {
  24. mavenJava(MavenPublication) {
  25. artifact jar
  26. pom.withXml {
  27. def root = asNode()
  28. root.appendNode('inceptionYear', '2006')
  29. root.appendNode('url', 'http://www.dmdirc.com/')
  30. root.appendNode('name', "${group}:${artifactId}")
  31. root.appendNode('description', project.name == 'common'
  32. ? 'Framework for building parsers for connecting to chat networks '
  33. : 'IRC library')
  34. def scm = root.appendNode('scm')
  35. scm.appendNode('url', 'https://github.com/DMDirc/parser')
  36. scm.appendNode('connection', 'scm:https://github.com/DMDirc/Parser.git')
  37. scm.appendNode('developerConnection', 'scm:ssh://git@github.com:DMDirc/Parser.git')
  38. def license = root.appendNode('licenses').appendNode('license')
  39. license.appendNode('name', 'MIT License')
  40. license.appendNode('url', 'http://www.opensource.org/licenses/mit-license.php')
  41. license.appendNode('distribution', 'repo')
  42. def issues = root.appendNode('issueManagement')
  43. issues.appendNode('system', 'GitHub Issues')
  44. issues.appendNode('url', 'https://github.com/DMDirc/Parser/issues')
  45. def developers = root.appendNode('developers')
  46. def chris = developers.appendNode('developer')
  47. chris.appendNode('name', 'Chris Smith')
  48. chris.appendNode('email', 'chris@dmdirc.com')
  49. def greg = developers.appendNode('developer')
  50. greg.appendNode('name', 'Greg Holmes')
  51. greg.appendNode('email', 'greg@dmdirc.com')
  52. def shane = developers.appendNode('developer')
  53. shane.appendNode('name', 'Shane McCormack')
  54. shane.appendNode('email', 'shane@dmdirc.com')
  55. def dependenciesNode = asNode().appendNode('dependencies')
  56. configurations.compile.allDependencies.each {
  57. def dependencyNode = dependenciesNode.appendNode('dependency')
  58. dependencyNode.appendNode('groupId', it.group)
  59. dependencyNode.appendNode('artifactId', it.name)
  60. dependencyNode.appendNode('version', it.version)
  61. }
  62. configurations.testCompile.allDependencies.each {
  63. def dependencyNode = dependenciesNode.appendNode('dependency')
  64. dependencyNode.appendNode('groupId', it.group)
  65. dependencyNode.appendNode('artifactId', it.name)
  66. dependencyNode.appendNode('version', it.version)
  67. dependencyNode.appendNode('scope', 'test')
  68. }
  69. }
  70. }
  71. }
  72. repositories {
  73. maven {
  74. name 'snapshots'
  75. url 'http://nexus.dmdirc.com/nexus/content/repositories/snapshots/'
  76. }
  77. }
  78. }
  79. signing {
  80. sign configurations.archives
  81. }
  82. sourceCompatibility = 1.7
  83. targetCompatibility = 1.7
  84. repositories.mavenCentral()
  85. dependencies {
  86. testCompile group: 'junit', name: 'junit', version: '4.+'
  87. testCompile group: 'org.mockito', name: 'mockito-all', version: '1.+'
  88. }
  89. task getCredentials << {
  90. def target = file('../nexus-teamcity.gradle')
  91. if (!target.exists()) {
  92. new URL('http://www.dmdirc.com/private/nexus-teamcity.gradle').withInputStream{
  93. i -> target.withOutputStream { it << i }
  94. }
  95. }
  96. apply from: '../nexus-teamcity.gradle'
  97. project.publishing.repositories[0].credentials {
  98. username "$nexusUser"
  99. password "$nexusPass"
  100. }
  101. }
  102. task publishSnapshot(dependsOn: ['getCredentials', 'publishMavenJavaPublicationToSnapshotsRepository']) << {
  103. }
  104. task javadocJar(type: Jar) {
  105. classifier = 'javadoc'
  106. from javadoc
  107. }
  108. task sourcesJar(type: Jar) {
  109. classifier = 'sources'
  110. from sourceSets.main.allSource
  111. }
  112. artifacts {
  113. archives javadocJar, sourcesJar
  114. }
  115. }
  116. task wrapper(type: Wrapper) {
  117. gradleVersion = '2.1'
  118. }
  119. def find(name) {
  120. if (allprojects.find { it.name == name }) {
  121. project(name)
  122. } else if (allprojects.find { it.name == 'parser:' + name }) {
  123. project('parser:' + name)
  124. } else if (allprojects.find { it.name == 'modules:parser:' + name }) {
  125. project('modules:parser:' + name)
  126. } else {
  127. println "Couldn't find project $name"
  128. }
  129. }
  130. buildscript {
  131. repositories {
  132. mavenCentral()
  133. maven {
  134. url 'http://nexus.dmdirc.com/nexus/content/repositories/thirdparty/'
  135. }
  136. }
  137. dependencies {
  138. classpath group: 'com.github.shanemcc', name: 'jgit-describe', version: '0.5'
  139. classpath group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '2.3.1.+'
  140. }
  141. }