2
0

common.gradle 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. source = sourceSets.main.allJava // main only, exclude tests
  66. }
  67. test {
  68. testLogging {
  69. exceptionFormat = 'full'
  70. }
  71. }
  72. task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
  73. classifier = 'sources'
  74. from sourceSets*.allSource
  75. }
  76. task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
  77. classifier = 'javadoc'
  78. from javadoc.destinationDir
  79. }
  80. ext.pomConfig = {
  81. name POM_NAME
  82. description POM_DESCRIPTION
  83. url POM_URL
  84. inceptionYear POM_INCEPTION_YEAR
  85. scm {
  86. url POM_SCM_URL
  87. connection POM_SCM_CONNECTION
  88. developerConnection POM_SCM_DEVELOPER_CONNECTION
  89. }
  90. licenses {
  91. license {
  92. name POM_LICENSE_NAME
  93. url POM_LICENSE_URL
  94. distribution POM_LICENSE_DISTRIBUTION
  95. }
  96. }
  97. developers {
  98. developer {
  99. name 'jMonkeyEngine Team'
  100. id 'jMonkeyEngine'
  101. }
  102. }
  103. }
  104. // workaround to be able to use same custom pom with 'maven' and 'bintray' plugin
  105. task writeFullPom {
  106. ext.pomFile = "$mavenPomDir/${project.name}-${project.version}.pom"
  107. outputs.file pomFile
  108. doLast {
  109. pom {
  110. project pomConfig
  111. }.writeTo(pomFile)
  112. }
  113. }
  114. assemble.dependsOn(writeFullPom)
  115. install.dependsOn(writeFullPom)
  116. uploadArchives.dependsOn(writeFullPom)
  117. artifacts {
  118. archives jar
  119. archives sourcesJar
  120. if (buildJavaDoc == "true") {
  121. archives javadocJar
  122. }
  123. archives writeFullPom.outputs.files[0]
  124. }
  125. publishing {
  126. publications {
  127. maven(MavenPublication) {
  128. artifact javadocJar
  129. artifact sourcesJar
  130. from components.java
  131. pom {
  132. description = POM_DESCRIPTION
  133. developers {
  134. developer {
  135. id = 'jMonkeyEngine'
  136. name = 'jMonkeyEngine Team'
  137. }
  138. }
  139. inceptionYear = POM_INCEPTION_YEAR
  140. licenses {
  141. license {
  142. distribution = POM_LICENSE_DISTRIBUTION
  143. name = POM_LICENSE_NAME
  144. url = POM_LICENSE_URL
  145. }
  146. }
  147. name = POM_NAME
  148. scm {
  149. connection = POM_SCM_CONNECTION
  150. developerConnection = POM_SCM_DEVELOPER_CONNECTION
  151. url = POM_SCM_URL
  152. }
  153. url = POM_URL
  154. }
  155. version project.version
  156. }
  157. }
  158. repositories {
  159. maven {
  160. name = 'Dist'
  161. url = gradle.rootProject.projectDir.absolutePath + '/dist/maven'
  162. }
  163. maven {
  164. credentials {
  165. username = gradle.rootProject.hasProperty('ossrhUsername') ? ossrhUsername : 'Unknown user'
  166. password = gradle.rootProject.hasProperty('ossrhPassword') ? ossrhPassword : 'Unknown password'
  167. }
  168. name = 'OSSRH'
  169. url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
  170. }
  171. }
  172. }
  173. signing {
  174. def signingKey = gradle.rootProject.findProperty('signingKey')
  175. def signingPassword = gradle.rootProject.findProperty('signingPassword')
  176. useInMemoryPgpKeys(signingKey, signingPassword)
  177. sign configurations.archives
  178. sign publishing.publications.maven
  179. }
  180. tasks.withType(Sign) {
  181. onlyIf { gradle.rootProject.hasProperty('signingKey') }
  182. }