Gradle PlayFramework: java.lang.NoClassDefFoundError when runPlayBinary with jar dependencies

Hi guys,
I’m using gradle play plugin. Everything works fine but when I need using a jar file as library, runPlayBinary will throw NoClassDefFoundError (class in jar file). If I use gradle dist and run bin/playBinary file, it works fine.
My build.gradle:

plugins {
id ‘java’
id ‘play’
id ‘idea’
}

group ‘longhm’

def jvmVersion = “1.8”
def playVersion = “2.6.20”
def scalaVersion = System.getProperty(“scala.binary.version”, /* default = */ “2.12”)

sourceCompatibility = jvmVersion
targetCompatibility = jvmVersion

repositories {
mavenCentral()
jcenter()
maven {
name “lightbend-maven-releases”
url “https://repo.lightbend.com/lightbend/maven-release
}
ivy {
name “lightbend-ivy-release”
url “https://repo.lightbend.com/lightbend/ivy-releases
layout “ivy”
}
}

dependencies {
play “commons-lang:commons-lang:2.6”
// play group: ‘org.apache.commons’, name: ‘commons-text’, version: ‘1.6’

play "com.typesafe.play:play-guice_$scalaVersion:$playVersion"
play "com.typesafe.play:play-logback_$scalaVersion:$playVersion"
play "com.typesafe.play:play-ahc-ws_$scalaVersion:$playVersion"
play "com.typesafe.play:filters-helpers_$scalaVersion:$playVersion"
// play "com.h2database:h2:1.4.197"
play fileTree(dir: 'lib', include: ['*.jar'])
playTest "org.assertj:assertj-core:3.6.2"
playTest "org.awaitility:awaitility:2.0.0"
play group: 'junit', name: 'junit', version: '4.12'
play project(':My-DAL')
testCompile group: 'junit', name: 'junit', version: '4.12'

}
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: jvmVersion
injectedRoutesGenerator = true
sources {
twirlTemplates {
defaultImports = TwirlImports.JAVA
}
}
}
}
}
configurations {
compile.extendsFrom(play)
testCompile.extendsFrom(playTest)
implementation.extendsFrom(playRun)
implementation.extendsFrom(playPlatform)
}
tasks.withType(PlayRun) {
assetsJar = file(‘lib/mylib.jar’)
}