2014-12-20 42 views
9

Tôi đang gặp khó khăn với Google App Engine. Tất cả tôi muốn làm là thế này:Triển khai Google App Engine

tôi sau khi chính xác các bước của hướng dẫn. Tôi đã thử nhiều lần rồi. Các ứng dụng xây dựng tốt trong Jenkins (tôi quản lý để có được nó chạy) tuy nhiên việc triển khai không thành công.

+ 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 

Tất cả đều hoạt động tốt trên máy chủ web phát triển cục bộ. MyProject là id dự án (tôi chỉ thay đổi nó cho ví dụ). Tôi đang làm gì sai. Ý tôi là tôi đã quên làm điều gì đó? Tôi đã làm Java trong hơn năm năm nay, tôi không thể hiểu tại sao nó phải khó khăn như vậy để làm một cái gì đó rất cơ bản. Xin hãy giúp tôi

Từ Jenkins:

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:

<?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> 

Tôi đang làm gì sai, tôi thiếu cái gì? Tôi đã theo các hướng dẫn chính xác như họ nói.

Tôi đã cố gắng sử dụng Google Source làm kho lưu trữ và Github. Không có gì hiệu quả.

EDIT:

Nó hoạt động:

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 

Thật là một cái nhìn tuyệt vời!

+0

bạn đã cố gắng để thay thế '$ {appengine.app.version } 'với giá trị thực tế? –

+0

@IgorArtamonov Yep, tôi đã cố gắng thay thế bằng '1'. – LuckyLuke

+0

và 'MyProject' được thay thế bằng id ứng dụng thực tế, phải không? –

Trả lời

7

Nó không triển khai vì Jenkins của bạn xây dựng kịch bản là không:

Build step 'Execute shell' marked build as failure

Trong bước "Execute vỏ", bạn phải chắc chắn rằng kịch bản trở lại với tình trạng 0. Bất cứ điều gì khác được coi thất bại. See this SO answer to a similar issue.

Dường như phần "Execute vỏ" của bạn là một trong những điều này:

[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 

này "Execute vỏ" các phần của xây dựng là không vì mã trạng thái trở về từ kịch bản dường như được mã trạng thái trở lại từ lệnh gcloud. Nếu bạn kiểm tra tài liệu here, you can see that it doesn't accept .war archives, but only unpacked war folders. Bạn chỉ có thể thay đổi dòng từ

gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT.war 

để

gcloud --project=MyProject preview app deploy target/myapp-1.0-SNAPSHOT 

và tại thời điểm này, "Execute vỏ" của việc xây dựng sẽ chạy đúng cách, và do đó Jenkins xây dựng như một toàn thể nên hoàn thành đúng.

Gradle

Nếu bạn đang sử dụng gradle cho việc xây dựng, có khả năng đã tạo ra một thư mục ứng dụng phát nổ:

build/exploded-app 
+1

Người đàn ông của năm là: @ anonymous4444! Tôi đã gần như mất tất cả tóc của tôi trong những ngày qua vì điều này. Cảm ơn bạn rất nhiều. Vì vậy, tài liệu là sai tại Google. – LuckyLuke

+1

Ah tuyệt vời! Tôi rất vui khi biết điều này đã giúp bạn. Không quan tâm, bạn có thể liên kết trang tài liệu giới thiệu bạn sử dụng tệp '.war' thay vì thư mục có cấu trúc WAR không? (PS - gửi bounty plox?) – Nick

+1

Bạn sẽ nhận được tiền thưởng (Tôi phải chờ 12 giờ trước khi tôi có thể cung cấp cho nó cho bạn). Vâng; https://cloud.google.com/tools/repo/push-to-deploy Tìm kiếm: 'gcloud --project = mục tiêu triển khai ứng dụng xem trước/*. war' – LuckyLuke

Các vấn đề liên quan