3

Google App Engine에서 최근에 일해 왔고 나에게 신비한 것을 발견했을 때 어쩌면 분명히 할 수 있습니다.어떤 App Engine Maven Plugin을 사용할 수 있습니까?

구글의 자신의 웹 사이트 (https://cloud.google.com/appengine/docs/java/tools/maven)의 일부에 따르면, 당신은 당신이 지금

<plugin> 
<groupId>com.google.cloud.tools</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>1.1.0-beta</version> 
</plugin> 

나는에 관해서는 정말 혼란 스러워요 사용해야

<plugin> 
<groupId>com.google.appengine</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>${appengine.maven.plugin.version}</version> 
</plugin> 

및 다른 페이지 (https://cloud.google.com/appengine/docs/java/tools/maven-reference)에 따라 사용해야합니다 나는 그것을 사용해야한다. 왜 처음에는 두 가지 버전이 있습니까?

문제 내가 직면하고있다 :

양쪽은 서로 다른 목표를 지원하는 것. 하나는 배포 등을 지원하고 다른 하나는 update_cron을 업데이트합니다.

나는 이러한 목표 중 3 가지를 모두 원할 것입니다.

미리 감사드립니다. 누군가 도와 주시면 감사하겠습니다.

샤샤

답변

4
<plugin> 
<groupId>com.google.appengine</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>${appengine.maven.plugin.version}</version> 
</plugin> 

첫 번째가 기반으로 이전 (하지만 사용되지 않음) appcfg (또는 Java SDK).

그것은 제공하는 lot of Goals 업데이트 큐, 업데이트 크론, 업데이트 인덱스, 진공 인덱스, ... 앱 엔진, dev에 서버와 배포뿐만 아니라 함께 기본적인 것들에 대한 특정

<plugin> 
<groupId>com.google.cloud.tools</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>1.1.0-beta</version> 
</plugin> 

최신 베타 버전으로 아직 베타 버전입니다. GCloud SDK을 기반으로하며 제한된 목표를 가지고 있습니다.

Here 당신은 내가 1.1.0-beta 버전을 볼 수 없습니다, 최신 하나 1.0.0입니다, 메이븐 중앙에서 최신 버전을 볼 수 있습니다 적절한 플러그인 선택하는 방법

: 만 dev-server를 사용해야하는 경우 을 deployGCloud SDK에 기반한 최신 플러그인을 사용할 수 있습니다.

이 두 가지 목표는 appcfg 기반 플러그인에서도 가능하지만 더 구체적인 목표 (예 : 대기열, cron, 색인 등)가 필요한 경우이 마지막 목표에서만 사용할 수 있습니다. 또한

Google Cloud Endpoints goals는, 끝에서 appcfg 하나

만 사용할 수 있습니다, 그 2 플러그인은 동일한 프로젝트에서 공존 할 수 있습니다. 둘 다 사용하는 트릭은 짧은 것 (source) 대신 목표 전체 경로를 사용하는 것입니다.

  • com.google.cloud.tools:appengine-maven-plugin:run
  • com.google.appengine:appengine-maven-plugin:devserver

그리고하지

  • appengine:run
  • appengine:devserver
  • 0,123,516 : 예를 들어

당신이 짧은 버전을 사용하는 경우, Maven은 모두 플러그인이 작동되는 순간을 위해

합니다 (artifactId를 모두 플러그인에서 동일하기 때문에) 적절한의 groupId를 해결할 수없는이며, 사용 중단이 추적되지 않는다 appcfg 기준입니다.

예를 들어 나는 항상 Gcloud 플러그인 내에서 배포를 사용합니다 (appcfg에 비해 배포 절차가 더 좋다고 생각합니다). 그러나 cron/queues를 업데이트해야 할 때 이전의 목표를 사용합니다 플러그인. 내 프로젝트 내에서 두 가지 문제가 발생하지 않습니다.

GCloud 기반 컴퓨터를 사용하려면 로컬 컴퓨터에 GCloud installed (구성)이 있어야합니다. 두 플러그인이 지원됩니다

com.google.appengine의 groupId

com.google.cloud.tools의 groupId

을 : 모두 플러그인에 대한 `gcloud app deploy` vs. `appcfg.py`

+0

두 플러그인이 지속적으로 업데이트됩니다. 구식 : 1.9.60 2017 년 12 월, 새것; 1.3.2 2017 11 월 (매우 이상한 99.99.99 버전이 있습니다). 한편 Google 문서의 두 페이지가 별도로 나와 있습니다. 예전에는 https://cloud.google.com/appengine/docs/standard/java/tools/maven, 새로운 페이지는 https : // cloud입니다. google.com/appengine/docs/standard/java/tools/using-maven –

+0

이 페이지의 https://cloud.google.com/appengine/docs/standard/java/tools/migrate-maven에 따라 Google migrate 메소드를 제공하여 com.google.appengine.appengine-maven을 com.google.cloud.tools.appengine-maven으로 마이그레이션하십시오. 따라서 새 maven 프로젝트를 시작하면 새로운 것이 좋습니다. –

+0

Jenkins에서 배포를 설정할 때 com.google.cloud.tools를 사용해야하는 이유로 인증이 다르게 수행됩니다. –

0

공식 문서는 아래 링크 : 여기

은 동일한 주제를 논의하고 다른 스레드 , 그들은 같은 artifactId ( appengine-maven-plugin)이지만 목표는 다르며 다르게 행동합니다. 나는 이것이 구글에 의한 소프트웨어 진화의 나쁜 조직의 또 다른 경우라고 생각한다. 그들은 단순히 하나의 플러그인을 유지하고 환경에서 존재 여부를 확인하고 경고/권장 사항을 게시함으로써 하나의 SDK에서 다른 SDK로 투명하게 이동할 수 있습니다.

관련 문제