Reputation: 33
I want to rewrite this https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/appengine-standard-java8/springboot-appengine-standard simple spring boot app to use gradle instead of maven.
I mostly succeeded the gradle bootRun and appengineDeploy works fine but appengineRun FAILS with:
java.lang.IllegalArgumentException: Unable to find the main class to restart
at org.springframework.util.Assert.notNull(Assert.java:134)
at org.springframework.boot.devtools.restart.Restarter.doStart(Restarter.java:285)
at org.springframework.boot.devtools.restart.Restarter.start(Restarter.java:273)
at org.springframework.boot.devtools.restart.Restarter$1.call(Restarter.java:174)
at org.springframework.boot.devtools.restart.Restarter$1.call(Restarter.java:170)
at org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.run(Restarter.java:627)
error.
My gradle.build:
buildscript {
repositories {
jcenter() // Bintray's repository - a fast Maven Central mirror & more
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:+")
classpath 'com.google.cloud.tools:appengine-gradle-plugin:+'
}
}
repositories {
maven {
url 'https://maven-central.storage.googleapis.com' // Google's mirror of Maven Central
}
jcenter()
mavenCentral()
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'com.google.cloud.tools.appengine'
apply plugin: 'org.springframework.boot'
enter code here
bootRepackage {
enabled = false
}
configurations {
compile.exclude module: "spring-boot-starter-tomcat"
compile.exclude module: "spring-boot-starter-jetty"
}
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
compile 'com.google.appengine:appengine:+'
// Use JUnit test framework
testImplementation 'junit:junit:4.12'
compile("org.springframework.boot:spring-boot-devtools")
compile("org.springframework.boot:spring-boot-starter-web")
}
appengine { // App Engine tasks configuration
run { // local (dev_appserver) configuration (standard environments only)
port = 8080 // default
}
deploy { // deploy configuration
stopPreviousVersion = true // default - stop the current version
promote = true // default - & make this the current version
}
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
The working pom.xml is at the git repo I linked above (stackoverflow doesnt allow me to use 2 links :-) )
I think the solution is easy I just dont have experience nor with gradle or appengine. Any help would be much appreciated.
Upvotes: 2
Views: 273
Reputation: 33
removing the
compile("org.springframework.boot:spring-boot-devtools")
dependency from the gradle.build file solves the problem. It would be good though if someone could explain why.
Upvotes: 1