我正在努力使用Google App Engine。我想做的就是:
我正在按照教程的确切步骤进行操作。我现在已经尝了好几次了。该应用程序在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
应用服务引擎-web.xml中:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>MyProject</application>
<version>${appengine.app.version}</version>
<threadsafe>true</threadsafe>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
</appengine-web-app>
我做错了什么,我错过了什么?我完全按照他们的说法跟踪了指南。
我曾尝试将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
多么美妙的景象!
答案 0 :(得分:7)
由于您的jenkins构建脚本失败,因此无法部署:
Build step 'Execute shell' marked build as failure
在步骤&#34;执行shell&#34;期间,您必须确保脚本返回状态为0.其他任何内容都被视为失败。 See this SO answer to a similar issue
看来你的&#34;执行shell&#34;部分就是这个:
[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
这个&#34;执行shell&#34;构建的各个部分失败,因为从脚本返回的状态代码似乎是从gcloud
命令返回的状态代码。如果您查看文档here, you can see that it doesn't accept .war
archives, but only unpacked war folders。您只需更改
gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT.war
到
gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT
此时,&#34;执行shell&#34;构建部分将正常运行,因此jenkins构建整体应该正确完成。
摇篮
如果您正在使用gradle进行构建,则可能已经生成了展开的应用目录:
build/exploded-app