GoogleCloudPlatform / app-gradle-plugin

The library has moved to https://github.com/GoogleCloudPlatform/appengine-plugins/tree/main/app-gradle-plugin
Apache License 2.0
153 stars 40 forks source link

appengineDeploy works but appengineRun fails #161

Closed fixako closed 6 years ago

fixako commented 7 years ago

I tried 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.

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'

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: https://github.com/GoogleCloudPlatform/getting-started-java/blob/master/appengine-standard-java8/springboot-appengine-standard/pom.xml

I think the solution is easy I just dont have experience nor with gradle or appengine. Any help would be much appreciated.

loosebazooka commented 7 years ago

see : https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/appengine-standard-java8/springboot-appengine-standard#remove-tomcat-starter