我正在努力使用Google App Engine.我想做的就是:
从https://cloud.google.com/appengine/docs/java/tools/maven部署留言簿应用程序(我选择了留言板应用程序)
设置推送部署https://cloud.google.com/tools/repo/push-to-deploy
我正在按照教程的确切步骤进行操作.我现在已经尝了好几次了.该应用程序在Jenkins中构建良好(我设法让它运行),但部署失败.
+ gcloud --project=MyProject preview app deploy target/guestbook-1.0-SNAPSHOT.war ERROR: File [/var/jenkins/workspace/MyProject/target/guestbook-1.0-SNAPSHOT.war] is not a valid deployable item. ERROR: (gcloud.preview.app.deploy) Errors occurred while parsing the App Engine app configuration: Build step 'Execute shell' marked build as failure Finished: FAILURE
它在本地开发Web服务器上运行良好.MyProject是项目ID(我刚刚为示例更改了它).我究竟做错了什么.我的意思是我忘了做某事吗?我已经做了五年多的Java了,我无法理解为什么做这么基本的事情应该这么难.请帮我
来自詹金斯:
Started by user User Name Building remotely on cloud-dev-java in workspace /var/jenkins/workspace/MyGuestbook > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://source.developers.google.com/p/MyProject # timeout=10 Fetching upstream changes from https://source.developers.google.com/p/MyProject > git --version # timeout=10 using .gitcredentials to set credentials > git config --local credential.helper store --file=/tmp/git7191806817673001841.credentials # timeout=10 > git fetch --tags --progress https://source.developers.google.com/p/MyProject +refs/heads/*:refs/remotes/origin/* > git config --local --remove-section credential # timeout=10 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision 2bf8419a93275dc87adb7be00d1fda9e6efc773b (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 2bf8419a93275dc87adb7be00d1fda9e6efc773b > git rev-list 9d2cd477ad8fcb6f210bd2418e8f708e5c5167f9 # timeout=10 [MyGuestbook] $ mvn clean test package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ myapp --- [INFO] Deleting /var/jenkins/workspace/MyGuestbook/target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /var/jenkins/workspace/MyGuestbook/src/main/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myapp --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 2 source files to /var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT/WEB-INF/classes [INFO] [INFO] --- versions-maven-plugin:2.1:display-dependency-updates (default) @ myapp --- [INFO] The following dependencies in Dependencies have newer versions: [INFO] com.google.appengine:appengine-api-1.0-sdk ......... 1.9.17 -> 1.9.17a [INFO] com.google.appengine:appengine-api-stubs ........... 1.9.17 -> 1.9.17a [INFO] com.google.appengine:appengine-testing ............. 1.9.17 -> 1.9.17a [INFO] javax.servlet:servlet-api ......................... 2.5 -> 3.0-alpha-1 [INFO] junit:junit ...................................... 4.12-beta-1 -> 4.12 [INFO] org.mockito:mockito-all ............................. 1.9.5 -> 1.10.17 [INFO] [INFO] [INFO] --- versions-maven-plugin:2.1:display-plugin-updates (default) @ myapp --- [INFO] [INFO] The following plugin updates are available: [INFO] com.google.appengine:appengine-maven-plugin ....... 1.9.17 -> 1.9.17a [INFO] maven-compiler-plugin .................................... 3.1 -> 3.2 [INFO] maven-war-plugin ......................................... 2.4 -> 2.5 [INFO] [WARNING] The following plugins do not have their version specified: [WARNING] maven-clean-plugin ........................ (from super-pom) 2.6.1 [WARNING] maven-deploy-plugin ....................... (from super-pom) 2.8.2 [WARNING] maven-install-plugin ...................... (from super-pom) 2.5.2 [WARNING] maven-resources-plugin ...................... (from super-pom) 2.7 [WARNING] maven-site-plugin ........................... (from super-pom) 3.4 [WARNING] maven-surefire-plugin ...................... (from super-pom) 2.18 [INFO] [INFO] Project defines minimum Maven version as: 3.1.0 [INFO] Plugins require minimum Maven version of: 3.1.0 [INFO] Note: the super-pom from Maven 3.1.0 defines some of the plugin [INFO] versions and may be influencing the plugins required minimum Maven [INFO] version. [INFO] [INFO] No plugins require a newer version of Maven than specified by the pom. [INFO] [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ myapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /var/jenkins/workspace/MyGuestbook/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ myapp --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 2 source files to /var/jenkins/workspace/MyGuestbook/target/test-classes [WARNING] /var/jenkins/workspace/MyGuestbook/src/test/java/com/mycompany/myapp/GuestbookServletTest.java: Some input files use or override a deprecated API. [WARNING] /var/jenkins/workspace/MyGuestbook/src/test/java/com/mycompany/myapp/GuestbookServletTest.java: Recompile with -Xlint:deprecation for details. [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ myapp --- [INFO] Surefire report directory: /var/jenkins/workspace/MyGuestbook/target/surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.mycompany.myapp.GuestbookServletTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.702 sec Running com.mycompany.myapp.SignGuestbookServletTest Dec 22, 2014 5:32:44 PM com.google.appengine.api.datastore.dev.LocalDatastoreService init INFO: Local Datastore initialized: Type: Master/Slave Storage: In-memory Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.456 sec Results : Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /var/jenkins/workspace/MyGuestbook/src/main/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myapp --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- versions-maven-plugin:2.1:display-dependency-updates (default) @ myapp --- [INFO] The following dependencies in Dependencies have newer versions: [INFO] com.google.appengine:appengine-api-1.0-sdk ......... 1.9.17 -> 1.9.17a [INFO] com.google.appengine:appengine-api-stubs ........... 1.9.17 -> 1.9.17a [INFO] com.google.appengine:appengine-testing ............. 1.9.17 -> 1.9.17a [INFO] javax.servlet:servlet-api ......................... 2.5 -> 3.0-alpha-1 [INFO] junit:junit ...................................... 4.12-beta-1 -> 4.12 [INFO] org.mockito:mockito-all ............................. 1.9.5 -> 1.10.17 [INFO] [INFO] [INFO] --- versions-maven-plugin:2.1:display-plugin-updates (default) @ myapp --- [INFO] [INFO] The following plugin updates are available: [INFO] com.google.appengine:appengine-maven-plugin ....... 1.9.17 -> 1.9.17a [INFO] maven-compiler-plugin .................................... 3.1 -> 3.2 [INFO] maven-war-plugin ......................................... 2.4 -> 2.5 [INFO] [WARNING] The following plugins do not have their version specified: [WARNING] maven-clean-plugin ........................ (from super-pom) 2.6.1 [WARNING] maven-deploy-plugin ....................... (from super-pom) 2.8.2 [WARNING] maven-install-plugin ...................... (from super-pom) 2.5.2 [WARNING] maven-resources-plugin ...................... (from super-pom) 2.7 [WARNING] maven-site-plugin ........................... (from super-pom) 3.4 [WARNING] maven-surefire-plugin ...................... (from super-pom) 2.18 [INFO] [INFO] Project defines minimum Maven version as: 3.1.0 [INFO] Plugins require minimum Maven version of: 3.1.0 [INFO] Note: the super-pom from Maven 3.1.0 defines some of the plugin [INFO] versions and may be influencing the plugins required minimum Maven [INFO] version. [INFO] [INFO] No plugins require a newer version of Maven than specified by the pom. [INFO] [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ myapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /var/jenkins/workspace/MyGuestbook/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ myapp --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ myapp --- [INFO] Skipping execution of surefire because it has already been run for this configuration [INFO] [INFO] --- maven-war-plugin:2.4:war (default-war) @ myapp --- [INFO] Packaging webapp [INFO] Assembling webapp [myapp] in [/var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT] [INFO] Processing war project [INFO] Copying webapp webResources [/var/jenkins/workspace/MyGuestbook/src/main/webapp/WEB-INF] to [/var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT] [INFO] Copying webapp resources [/var/jenkins/workspace/MyGuestbook/src/main/webapp] [INFO] Webapp assembled in [154 msecs] [INFO] Building war: /var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT.war [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12.355s [INFO] Finished at: Mon Dec 22 17:32:47 UTC 2014 [INFO] Final Memory: 20M/56M [INFO] ------------------------------------------------------------------------ [MyGuestbook] $ /bin/sh -xe /tmp/hudson5523568617447680772.sh + gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT.war ERROR: File [/var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT.war] is not a valid deployable item. ERROR: (gcloud.preview.app.deploy) Errors occurred while parsing the App Engine app configuration: Build step 'Execute shell' marked build as failure Finished: FAILURE
AppEngine上-web.xml中:
MyProject ${appengine.app.version} true
我做错了什么,我错过了什么?我完全按照他们的说法跟踪了指南.
我曾尝试使用Google Source作为存储库和Github.什么都行不通.
编辑:
有用:
Updating module [default] from file [/tmp/appcfgpyASfUun/app.yaml] 09:15 PM Host: appengine.google.com 09:15 PM Application: esoteric-cab-803; version: 1 09:15 PM Starting update of app: esoteric-cab-803, version: 1 09:15 PM Getting current resource limits. 09:15 PM Scanning files on local disk. 09:15 PM Cloning 6 application files. 09:15 PM Uploading 3 files and blobs. 09:15 PM Uploaded 3 files and blobs. 09:15 PM Compilation starting. 09:15 PM Compilation completed. 09:15 PM Starting deployment. 09:15 PM Checking if deployment succeeded. 09:15 PM Deployment successful. 09:15 PM Checking if updated app version is serving. 09:15 PM Completed update of app: esoteric-cab-803, version: 1 Finished: SUCCESS
多么美妙的景象!
由于您的jenkins构建脚本失败,因此无法部署:
Build step 'Execute shell' marked build as failure
在"执行shell"步骤中,您必须确保脚本以状态0返回.其他任何内容都被视为失败.请参阅此SO回答类似问题.
您的"执行shell"部分似乎是这样的:
[MyGuestbook] $ /bin/sh -xe /tmp/hudson5523568617447680772.sh + gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT.war ERROR: File [/var/jenkins/workspace/MyGuestbook/target/myapp-1.0-SNAPSHOT.war] is not a valid deployable item. ERROR: (gcloud.preview.app.deploy) Errors occurred while parsing the App Engine app configuration: Build step 'Execute shell' marked build as failure Finished: FAILURE
构建的"执行shell"部分失败,因为从脚本返回的状态代码似乎是从gcloud
命令返回的状态代码.如果您在此处.war
查看文档,则可以看到它不接受存档,而只接受解压缩的war文件夹.您只需更改该行即可
gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT.war
至
gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT
并且此时,构建的"执行shell"部分将正常运行,因此整个jenkins构建应该正确完成.
摇篮
如果您正在使用gradle进行构建,则可能已经生成了一个展开的应用目录:
build/exploded-app