common.gradle 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. //
  2. // This file is to be applied to every subproject.
  3. //
  4. apply plugin: 'java'
  5. apply plugin: 'groovy'
  6. apply plugin: 'maven'
  7. apply plugin: 'maven-publish'
  8. apply plugin: 'signing'
  9. group = 'org.jmonkeyengine'
  10. version = jmeFullVersion
  11. sourceCompatibility = '1.8'
  12. [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
  13. if(JavaVersion.current() >= JavaVersion.VERSION_1_9) {
  14. compileJava {
  15. options.compilerArgs.addAll(['--release', '8'])
  16. //Replace previous with "options.release = 8" if updated to gradle 6.6 or newer
  17. }
  18. }
  19. gradle.projectsEvaluated {
  20. tasks.withType(JavaCompile) { // compile-time options:
  21. options.compilerArgs << '-Xlint:unchecked'
  22. }
  23. }
  24. repositories {
  25. mavenCentral()
  26. maven {
  27. url "http://nifty-gui.sourceforge.net/nifty-maven-repo"
  28. }
  29. flatDir {
  30. dirs rootProject.file('lib')
  31. }
  32. }
  33. dependencies {
  34. // Adding dependencies here will add the dependencies to each subproject.
  35. testCompile 'junit:junit:4.13.2'
  36. testCompile 'org.mockito:mockito-core:3.8.0'
  37. testCompile 'org.codehaus.groovy:groovy-all:3.0.7'
  38. }
  39. // Uncomment if you want to see the status of every test that is run and
  40. // the test output.
  41. /*
  42. test {
  43. testLogging {
  44. events "passed", "skipped", "failed", "standardOut", "standardError"
  45. }
  46. }
  47. */
  48. jar {
  49. manifest {
  50. attributes 'Implementation-Title': 'jMonkeyEngine',
  51. 'Implementation-Version': jmeFullVersion,
  52. 'Automatic-Module-Name': "${project.name.replace("-", ".")}"
  53. }
  54. }
  55. javadoc {
  56. failOnError = false
  57. options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
  58. options.docTitle = "jMonkeyEngine ${jmeFullVersion} ${project.name} Javadoc"
  59. options.windowTitle = "jMonkeyEngine ${jmeFullVersion} ${project.name} Javadoc"
  60. options.header = "<b>jMonkeyEngine ${jmeFullVersion} ${project.name}</b>"
  61. options.author = "true"
  62. options.use = "true"
  63. options.charSet = "UTF-8"
  64. options.encoding = "UTF-8"
  65. //disable doclint for JDK8, more quiet output
  66. if (JavaVersion.current().isJava8Compatible()){
  67. options.addStringOption('Xdoclint:none', '-quiet')
  68. }
  69. source = sourceSets.main.allJava // main only, exclude tests
  70. }
  71. test {
  72. testLogging {
  73. exceptionFormat = 'full'
  74. }
  75. }
  76. task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
  77. classifier = 'sources'
  78. from sourceSets*.allSource
  79. }
  80. task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
  81. classifier = 'javadoc'
  82. from javadoc.destinationDir
  83. }
  84. ext.pomConfig = {
  85. name POM_NAME
  86. description POM_DESCRIPTION
  87. url POM_URL
  88. inceptionYear POM_INCEPTION_YEAR
  89. scm {
  90. url POM_SCM_URL
  91. connection POM_SCM_CONNECTION
  92. developerConnection POM_SCM_DEVELOPER_CONNECTION
  93. }
  94. licenses {
  95. license {
  96. name POM_LICENSE_NAME
  97. url POM_LICENSE_URL
  98. distribution POM_LICENSE_DISTRIBUTION
  99. }
  100. }
  101. developers {
  102. developer {
  103. name 'jMonkeyEngine Team'
  104. id 'jMonkeyEngine'
  105. }
  106. }
  107. }
  108. // workaround to be able to use same custom pom with 'maven' and 'bintray' plugin
  109. task writeFullPom {
  110. ext.pomFile = "$mavenPomDir/${project.name}-${project.version}.pom"
  111. outputs.file pomFile
  112. doLast {
  113. pom {
  114. project pomConfig
  115. }.writeTo(pomFile)
  116. }
  117. }
  118. assemble.dependsOn(writeFullPom)
  119. install.dependsOn(writeFullPom)
  120. uploadArchives.dependsOn(writeFullPom)
  121. artifacts {
  122. archives jar
  123. archives sourcesJar
  124. if (buildJavaDoc == "true") {
  125. archives javadocJar
  126. }
  127. archives writeFullPom.outputs.files[0]
  128. }
  129. publishing {
  130. publications {
  131. maven(MavenPublication) {
  132. artifact javadocJar
  133. artifact sourcesJar
  134. from components.java
  135. pom {
  136. description = POM_DESCRIPTION
  137. developers {
  138. developer {
  139. id = 'jMonkeyEngine'
  140. name = 'jMonkeyEngine Team'
  141. }
  142. }
  143. inceptionYear = POM_INCEPTION_YEAR
  144. licenses {
  145. license {
  146. distribution = POM_LICENSE_DISTRIBUTION
  147. name = POM_LICENSE_NAME
  148. url = POM_LICENSE_URL
  149. }
  150. }
  151. name = POM_NAME
  152. scm {
  153. connection = POM_SCM_CONNECTION
  154. developerConnection = POM_SCM_DEVELOPER_CONNECTION
  155. url = POM_SCM_URL
  156. }
  157. url = POM_URL
  158. }
  159. version project.version
  160. }
  161. }
  162. repositories {
  163. maven {
  164. name = 'Dist'
  165. url = gradle.rootProject.projectDir.absolutePath + '/dist/maven'
  166. }
  167. maven {
  168. credentials {
  169. username = gradle.rootProject.hasProperty('ossrhUsername') ? ossrhUsername : 'Unknown user'
  170. password = gradle.rootProject.hasProperty('ossrhPassword') ? ossrhPassword : 'Unknown password'
  171. }
  172. name = 'OSSRH'
  173. url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
  174. }
  175. }
  176. }
  177. signing {
  178. def signingKey = gradle.rootProject.findProperty('signingKey')
  179. def signingPassword = gradle.rootProject.findProperty('signingPassword')
  180. useInMemoryPgpKeys(signingKey, signingPassword)
  181. sign configurations.archives
  182. sign publishing.publications.maven
  183. }
  184. tasks.withType(Sign) {
  185. onlyIf { gradle.rootProject.hasProperty('signingKey') }
  186. }