diff --git a/.gitignore b/.gitignore index be1334611..ecb1e1b68 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ *.jnilib *.dylib *.iml +.gradletasknamecache .DS_Store /jme3-core/src/main/resources/com/jme3/system/version.properties /jme3-*/build/ diff --git a/.travis.yml b/.travis.yml index bfb4b6343..8759b8ba6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,38 @@ language: java sudo: false -addons: - ssh_known_hosts: updates.jmonkeyengine.org +branches: + only: + - master + - v3.1 + +matrix: + include: + - jdk: oraclejdk8 + os: linux + env: UPLOAD_ALL=true + - jdk: openjdk7 + os: linux + - os: osx + +before_install: + - git fetch --unshallow before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ + cache: directories: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ +script: + - ./gradlew check + +after_success: + - '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ -n "$UPLOAD_ALL" ] && ./gradlew bintrayUpload || :' + notifications: slack: on_success: change @@ -19,12 +40,6 @@ notifications: rooms: secure: "PWEk4+VL986c3gAjWp12nqyifvxCjBqKoESG9d7zWh1uiTLadTHhZJRMdsye36FCpz/c/Jt7zCRO/5y7FaubQptnRrkrRfjp5f99MJRzQVXnUAM+y385qVkXKRKd/PLpM7XPm4AvjvxHCyvzX2wamRvul/TekaXKB9Ti5FCN87s=" -install: - - ./gradlew assemble - -script: - - ./gradlew check - before_deploy: - ./gradlew createZipDistribution - export RELEASE_DIST=$(ls build/distributions/*.zip) @@ -40,9 +55,6 @@ deploy: repo: jMonkeyEngine/jmonkeyengine tags: true -before_install: - - git fetch --unshallow - - "[ $TRAVIS_PULL_REQUEST == 'false' ] && openssl aes-256-cbc -K $encrypted_a1949b55824a_key -iv $encrypted_a1949b55824a_iv -in private/www-updater.key.enc -out private/www-updater.key -d || :" # before_install: # required libs for android build tools @@ -54,7 +66,4 @@ before_install: # 7z x ndk.bin -y > /dev/null # export ANDROID_NDK=`pwd`/android-ndk-r10c -after_success: - - '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew bintrayUpload || :' -# - '[ "$TRAVIS_BRANCH" == "v3.1" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew uploadArchives || :' -# - '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew uploadArchives bintrayUpload || :' + diff --git a/build.gradle b/build.gradle index 08a27044b..587b056cb 100644 --- a/build.gradle +++ b/build.gradle @@ -29,31 +29,32 @@ task run(dependsOn: ':jme3-examples:run') { defaultTasks 'run' -task libDist(dependsOn: subprojects.build) << { -// description 'Builds and copies the engine binaries, sources and javadoc to build/libDist' - File libFolder = mkdir("$buildDir/libDist/lib") - File sourceFolder = mkdir("$buildDir/libDist/sources") - File javadocFolder = mkdir("$buildDir/libDist/javadoc") - subprojects.each {project -> - if(project.ext.mainClass == ''){ - project.tasks.withType(Jar).each {archiveTask -> - if(archiveTask.classifier == "sources"){ - copy { - from archiveTask.archivePath - into sourceFolder - rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} - } - } else if(archiveTask.classifier == "javadoc"){ - copy { - from archiveTask.archivePath - into javadocFolder - rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} - } - } else{ - copy { - from archiveTask.archivePath - into libFolder - rename {project.name + '.' + archiveTask.extension} +task libDist(dependsOn: subprojects.build, description: 'Builds and copies the engine binaries, sources and javadoc to build/libDist') { + doLast { + File libFolder = mkdir("$buildDir/libDist/lib") + File sourceFolder = mkdir("$buildDir/libDist/sources") + File javadocFolder = mkdir("$buildDir/libDist/javadoc") + subprojects.each {project -> + if(project.ext.mainClass == ''){ + project.tasks.withType(Jar).each {archiveTask -> + if(archiveTask.classifier == "sources"){ + copy { + from archiveTask.archivePath + into sourceFolder + rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} + } + } else if(archiveTask.classifier == "javadoc"){ + copy { + from archiveTask.archivePath + into javadocFolder + rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} + } + } else{ + copy { + from archiveTask.archivePath + into libFolder + rename {project.name + '.' + archiveTask.extension} + } } } } diff --git a/common.gradle b/common.gradle index a34a40ced..d15f1c582 100644 --- a/common.gradle +++ b/common.gradle @@ -18,16 +18,11 @@ repositories { } } -configurations { - deployerJars -} - dependencies { // Adding dependencies here will add the dependencies to each subproject. testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'org.mockito', name: 'mockito-core', version: '2.0.28-beta' testCompile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10' - deployerJars "org.apache.maven.wagon:wagon-ssh:2.9" } jar { @@ -116,17 +111,3 @@ artifacts { archives writeFullPom.outputs.files[0] } -uploadArchives { - repositories.mavenDeployer { - configuration = configurations.deployerJars - - // disable this otherwise it will fill up the server with stale jars - uniqueVersion = false - - repository(url: "scp://updates.jmonkeyengine.org/var/www/updates/maven") { - authentication(userName: "www-updater", privateKey: "private/www-updater.key") - } - - pom.project pomConfig - } -} diff --git a/gradle.properties b/gradle.properties index 218a7fabe..2a548c3d9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,9 +23,6 @@ bulletUrl = https://storage.googleapis.com/google-code-archive-downloads/v2/code bulletFolder = bullet-2.82-r2704 bulletZipFile = bullet.zip -# Path for downloading NetBeans Base -netbeansUrl = http://download.netbeans.org/netbeans/8.0.2/final/zip/netbeans-8.0.2-201411181905-javase.zip - # POM settings POM_NAME=jMonkeyEngine POM_DESCRIPTION=jMonkeyEngine is a 3D game engine for adventurous Java developers diff --git a/jme3-bullet-native-android/build.gradle b/jme3-bullet-native-android/build.gradle index 958d2b094..4d5df83da 100644 --- a/jme3-bullet-native-android/build.gradle +++ b/jme3-bullet-native-android/build.gradle @@ -102,56 +102,58 @@ task copyJmeAndroid(type: Copy, dependsOn:copyJmeCpp) { into outputDir } -task generateNativeHeaders(dependsOn: copyJmeAndroid) << { - String destDirPath = jniPath - String classes = " \ - com.jme3.bullet.PhysicsSpace, \ - \ - com.jme3.bullet.collision.PhysicsCollisionEvent, \ - com.jme3.bullet.collision.PhysicsCollisionObject,\ - com.jme3.bullet.objects.PhysicsCharacter, \ - com.jme3.bullet.objects.PhysicsGhostObject, \ - com.jme3.bullet.objects.PhysicsRigidBody, \ - com.jme3.bullet.objects.PhysicsVehicle, \ - com.jme3.bullet.objects.VehicleWheel, \ - com.jme3.bullet.objects.infos.RigidBodyMotionState, \ - \ - com.jme3.bullet.collision.shapes.CollisionShape, \ - com.jme3.bullet.collision.shapes.BoxCollisionShape, \ - com.jme3.bullet.collision.shapes.CapsuleCollisionShape, \ - com.jme3.bullet.collision.shapes.CompoundCollisionShape, \ - com.jme3.bullet.collision.shapes.ConeCollisionShape, \ - com.jme3.bullet.collision.shapes.CylinderCollisionShape, \ - com.jme3.bullet.collision.shapes.GImpactCollisionShape, \ - com.jme3.bullet.collision.shapes.HeightfieldCollisionShape, \ - com.jme3.bullet.collision.shapes.HullCollisionShape, \ - com.jme3.bullet.collision.shapes.MeshCollisionShape, \ - com.jme3.bullet.collision.shapes.PlaneCollisionShape, \ - com.jme3.bullet.collision.shapes.SimplexCollisionShape, \ - com.jme3.bullet.collision.shapes.SphereCollisionShape, \ - \ - com.jme3.bullet.joints.PhysicsJoint, \ - com.jme3.bullet.joints.ConeJoint, \ - com.jme3.bullet.joints.HingeJoint, \ - com.jme3.bullet.joints.Point2PointJoint, \ - com.jme3.bullet.joints.SixDofJoint, \ - com.jme3.bullet.joints.SixDofSpringJoint, \ - com.jme3.bullet.joints.SliderJoint, \ - com.jme3.bullet.joints.motors.RotationalLimitMotor, \ - com.jme3.bullet.joints.motors.TranslationalLimitMotor, \ - \ - com.jme3.bullet.util.NativeMeshUtil, \ - com.jme3.bullet.util.DebugShapeFactory" - - String projectClassPath = configurations.runtime.asFileTree.matching { - exclude ".gradle" - }.asPath - - exec { - executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') - args '-d', destDirPath - args '-classpath', projectClassPath - args classes.split(",").collect { it.trim() } +task generateNativeHeaders(dependsOn: copyJmeAndroid) { + doLast { + String destDirPath = jniPath + String classes = " \ + com.jme3.bullet.PhysicsSpace, \ + \ + com.jme3.bullet.collision.PhysicsCollisionEvent, \ + com.jme3.bullet.collision.PhysicsCollisionObject,\ + com.jme3.bullet.objects.PhysicsCharacter, \ + com.jme3.bullet.objects.PhysicsGhostObject, \ + com.jme3.bullet.objects.PhysicsRigidBody, \ + com.jme3.bullet.objects.PhysicsVehicle, \ + com.jme3.bullet.objects.VehicleWheel, \ + com.jme3.bullet.objects.infos.RigidBodyMotionState, \ + \ + com.jme3.bullet.collision.shapes.CollisionShape, \ + com.jme3.bullet.collision.shapes.BoxCollisionShape, \ + com.jme3.bullet.collision.shapes.CapsuleCollisionShape, \ + com.jme3.bullet.collision.shapes.CompoundCollisionShape, \ + com.jme3.bullet.collision.shapes.ConeCollisionShape, \ + com.jme3.bullet.collision.shapes.CylinderCollisionShape, \ + com.jme3.bullet.collision.shapes.GImpactCollisionShape, \ + com.jme3.bullet.collision.shapes.HeightfieldCollisionShape, \ + com.jme3.bullet.collision.shapes.HullCollisionShape, \ + com.jme3.bullet.collision.shapes.MeshCollisionShape, \ + com.jme3.bullet.collision.shapes.PlaneCollisionShape, \ + com.jme3.bullet.collision.shapes.SimplexCollisionShape, \ + com.jme3.bullet.collision.shapes.SphereCollisionShape, \ + \ + com.jme3.bullet.joints.PhysicsJoint, \ + com.jme3.bullet.joints.ConeJoint, \ + com.jme3.bullet.joints.HingeJoint, \ + com.jme3.bullet.joints.Point2PointJoint, \ + com.jme3.bullet.joints.SixDofJoint, \ + com.jme3.bullet.joints.SixDofSpringJoint, \ + com.jme3.bullet.joints.SliderJoint, \ + com.jme3.bullet.joints.motors.RotationalLimitMotor, \ + com.jme3.bullet.joints.motors.TranslationalLimitMotor, \ + \ + com.jme3.bullet.util.NativeMeshUtil, \ + com.jme3.bullet.util.DebugShapeFactory" + + String projectClassPath = configurations.runtime.asFileTree.matching { + exclude ".gradle" + }.asPath + + exec { + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args '-d', destDirPath + args '-classpath', projectClassPath + args classes.split(",").collect { it.trim() } + } } } diff --git a/jme3-bullet-native/build.gradle b/jme3-bullet-native/build.gradle index f1875647c..97b2afc49 100644 --- a/jme3-bullet-native/build.gradle +++ b/jme3-bullet-native/build.gradle @@ -208,7 +208,7 @@ unzipBullet.dependsOn { } } -task unzipBulletIfNeeded << { +task unzipBulletIfNeeded { } unzipBulletIfNeeded.dependsOn { diff --git a/jme3-examples/build.gradle b/jme3-examples/build.gradle index be2e106a6..7936e33db 100644 --- a/jme3-examples/build.gradle +++ b/jme3-examples/build.gradle @@ -62,69 +62,71 @@ jar.doFirst{ task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar', \ ':jme3-android-native:jar', ':jme3-bullet-native-android:jar', \ - ':jme3-bullet-native:jar']) << { - // Copy all dependencies to ../dist/lib, remove versions from jar files - configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact -> - copy { - from artifact.file - into '../dist/lib' - if(artifact.classifier != null){ - rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } - } else{ - rename { "${artifact.name}.${artifact.extension}" } + ':jme3-bullet-native:jar']) { + doLast { + // Copy all dependencies to ../dist/lib, remove versions from jar files + configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact -> + copy { + from artifact.file + into '../dist/lib' + if(artifact.classifier != null){ + rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } + } else{ + rename { "${artifact.name}.${artifact.extension}" } + } } } - } - copy { - from jar.archivePath - into '../dist' - rename { "jMonkeyEngine3.jar" } - } - // Copy JOGL packages, remove version - def config = project(':jme3-jogl').configurations.runtime.copyRecursive({ !(it instanceof ProjectDependency); }) - config.resolvedConfiguration.resolvedArtifacts.each {artifact -> - copy{ - from artifact.file - into '../dist/opt/jogl/lib' - if(artifact.classifier != null){ - rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } - } else{ - rename { "${artifact.name}.${artifact.extension}" } + copy { + from jar.archivePath + into '../dist' + rename { "jMonkeyEngine3.jar" } + } + // Copy JOGL packages, remove version + def config = project(':jme3-jogl').configurations.runtime.copyRecursive({ !(it instanceof ProjectDependency); }) + config.resolvedConfiguration.resolvedArtifacts.each {artifact -> + copy{ + from artifact.file + into '../dist/opt/jogl/lib' + if(artifact.classifier != null){ + rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } + } else{ + rename { "${artifact.name}.${artifact.extension}" } + } } } - } - copy { - from project(':jme3-jogl').jar.archivePath - into '../dist/opt/jogl' - rename {project(':jme3-jogl').name+".jar"} - } + copy { + from project(':jme3-jogl').jar.archivePath + into '../dist/opt/jogl' + rename {project(':jme3-jogl').name+".jar"} + } - // Copy bullet packages, remove version - copy { - from project(':jme3-bullet').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet').name+".jar"} - } - copy { - from project(':jme3-bullet-native').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet-native').name+".jar"} - } + // Copy bullet packages, remove version + copy { + from project(':jme3-bullet').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet').name+".jar"} + } + copy { + from project(':jme3-bullet-native').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet-native').name+".jar"} + } - // Copy android packages, remove version - copy { - from project(':jme3-android').jar.archivePath - into '../dist/opt/android' - rename {project(':jme3-android').name+".jar"} - } - copy { - from project(':jme3-android-native').jar.archivePath - into '../dist/opt/android' - rename {project(':jme3-android-native').name+".jar"} - } - copy { - from project(':jme3-bullet-native-android').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet-native-android').name+".jar"} + // Copy android packages, remove version + copy { + from project(':jme3-android').jar.archivePath + into '../dist/opt/android' + rename {project(':jme3-android').name+".jar"} + } + copy { + from project(':jme3-android-native').jar.archivePath + into '../dist/opt/android' + rename {project(':jme3-android-native').name+".jar"} + } + copy { + from project(':jme3-bullet-native-android').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet-native-android').name+".jar"} + } } } diff --git a/private/www-updater.key.enc b/private/www-updater.key.enc deleted file mode 100644 index b6a226068..000000000 Binary files a/private/www-updater.key.enc and /dev/null differ diff --git a/version.gradle b/version.gradle index cd5b6b454..fd6970f8b 100644 --- a/version.gradle +++ b/version.gradle @@ -1,7 +1,7 @@ /* Version Info Examples ===================== - + Nightly Build Snapshot * git tag: * Full Version: 3.1-5124 @@ -22,14 +22,14 @@ * POM Version: 3.1.0-alpha1 * NBM Revision: 0 * NBM UC Suffix: stable/3.1/plugins - + Final Release * git tag: v3.1.0 * Full Version: 3.1 * POM Version: 3.1.0 * NBM Revision: 0 * NBM UC Suffix: stable/3.1/plugins - */ + */ import java.text.SimpleDateFormat import org.ajoberstar.grgit.* @@ -45,7 +45,6 @@ buildscript { ext { jmeRevision = 0 - jmeNbmRevision = 0 jmeGitHash = "" jmeGitTag = "" jmeShortGitHash = "" @@ -53,7 +52,6 @@ ext { jmeBranchName = "unknown" jmeFullVersion = "${jmeVersion}-UNKNOWN" jmePomVersion = "unknown" - jmeNbmUcSuffix = "unknown" } def getReleaseInfo(String tag) { @@ -122,7 +120,7 @@ task configureVersionInfo { jmeShortGitHash = head.abbreviatedId jmeBranchName = grgit.branch.current.name jmeGitTag = grgit.tag.list().find { it.commit == head } - + if (jmeGitTag != null) { jmeGitTag = jmeGitTag.name } else { @@ -133,8 +131,6 @@ task configureVersionInfo { if (releaseInfo != null) { jmeFullVersion = "${releaseInfo.baseVersion}${releaseInfo.releaseSuffix}" jmePomVersion = "${releaseInfo.mainVersion}${releaseInfo.releaseSuffix}" - jmeNbmRevision = "0" - jmeNbmUcSuffix = "stable/${releaseInfo.baseVersion}/plugins" } else { // SNAPSHOT jmeFullVersion = jmeMainVersion @@ -142,27 +138,20 @@ task configureVersionInfo { if (System.env.TRAVIS_BRANCH != null) { jmeBranchName = System.env.TRAVIS_BRANCH } - if (System.env.TRAVIS_PULL_REQUEST != null && + if (System.env.TRAVIS_PULL_REQUEST != null && System.env.TRAVIS_PULL_REQUEST != "false") { jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST } if (jmeBranchName != "v3.1") { jmeFullVersion += "-${jmeBranchName}" jmePomVersion += "-${jmeBranchName}" - jmeNbmUcSuffix = "${jmeBranchName}-" - } else { - jmeNbmUcSuffix = "" } - jmeNbmUcSuffix += "nightly/" + jmeMainVersion + "/plugins" jmeFullVersion += "-${jmeRevision}" jmePomVersion += "-SNAPSHOT" - jmeNbmRevision = jmeRevision } - + logger.warn("Full Version: ${jmeFullVersion}") logger.warn("POM Version: ${jmePomVersion}") - logger.warn("NBM Revision: ${jmeNbmRevision}") - logger.warn("NBM UC Suffix: ${jmeNbmUcSuffix}") } catch (ex) { // Failed to get repo info logger.warn("Failed to get repository info: " + ex.message + ". " + \