GCP App Engine Deploy on Version 1.0.0 issue

Started development out on 0.9.0. Was able to follow jmix’s documentation to deploy into gcp’s app engine.

After we updated the project to JMIX 1.0.0 still able to run the application locally but when deploying to the app engine these error is provided after the file upload

“Error message: did not find any jar files with a Main-Class manifest entry”

Is this a known issue in 1.0.0 ? What is the recommended fix?

Hi.

Thank you for reporting the problem. We have created a Github issue.

Regards,
Nadezhda.

Thank you for opening a ticket. Was wondering how soon a fix could be release for this. Being able to deploy to the app engine is important for our application. Wondering if I should invest in a work around if this doesn’t get resolved on JMIXs side.

As an update incase any one else runs into this:
The issue is for some reason in 1.0.0 when you run the appenginedeploy task while the executable jar does get build successfully and put into the build/libs folder the artifact placed into the build/staged-app folder is the PLAIN.jar. And then this is what gets deployed into the app engine leading to the “main class not specified” issue.

My temporary fix is to inside the task for app engine set the artifact property underneath stage step to point to the executable jar location.

appengine {
stage{
artifact = ’ path to executable’
}
}

Granted a better fix would be to change the build to actually stage the executable into the default staged-app location.

Hi Michael.

After researching we have created a Github ticket for updating our docs.

Here is a list of changes:

  1. Add
 stage {
        artifact = "${buildDir}/libs/${project.name}-${project.version}.jar"
    }

to appengine task:

appengine {  // App Engine tasks configuration
    deploy {   // deploy configuration
        projectId = 'jmix-application'
        version = '1'
    }
    stage {
        artifact = "${buildDir}/libs/${project.name}-${project.version}.jar"
    }
}
  1. Replace properties in application-xxx.properties:
    use main.datasource.url instead of main.datasource.jdbcUrl.

Regards,
Nadezhda.