ОК, поэтому внимательно глядя на вывод консоли для mvn appengine:deploy
, я вижу, что он выполняет новую сборку в локальной папке target
, а затем размещает приложение в отдельной папке в target
:
Строить
[INFO] --------------------------------
[INFO] Building my-project 1.0-SNAPSHOT
[INFO] --------------------------------
...
[INFO] Packaging webapp
[INFO] Assembling webapp [my-project] in [C:\my-project\target\my-project-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\my-project\src\main\webapp]
[INFO] Webapp assembled in [114 msecs]
[INFO] Building war: C:\my-project\target\my-project-1.0-SNAPSHOT.war
Stage
[INFO] --- appengine-maven-plugin:1.3.1:deploy (default-cli) @ my-project ---
[INFO] Deleting the staging directory: C:\my-project\target\appengine-staging
[INFO] Staging the application to: C:\my-project\target\appengine-staging
[INFO] Detected App Engine standard environment application.
Это означает, что очистка не обязательно выполняется. Когда я делаю:
mvn clean install appengine:deploy
Затем я получаю другой вывод, явно указывающий, что чистая была выполнена :
[INFO] --------------------------------
[INFO] Building my-project 1.0-SNAPSHOT
[INFO] --------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ my-project ---
[INFO] Deleting C:\my-project\target
...
Примечание - Использование mvn clean install
компилирует, упаковывает и помещает скомпилированный код в локальный репозиторий (чтобы другие проекты могли ссылаться на него). Это может быть важно для автоматизированных развертываний (можно использовать mvn clean package
, но при этом пропускается добавление кода в локальный репозиторий)
Итак, я бы посоветовал, что лучший способ развертывания:
mvn clean install appengine:deploy
( Получено при развертывании в App Engine - mvn appengine:deploy failed to delete one or more files
Если вы получили это, остановите все приложения, которые вы отлаживаете или запускаете, и закройте любую IDE, на которой вы работаете. Ошибка может возникнуть, даже если вы отлаживаете другое приложение, которое не пытаетесь развернуть. Это связано с тем, что для некоторых этапов развертывания используется локальное временное расположение, которое используется несколькими приложениями, а локально работающее приложение может блокировать файлы, расположенные во временном местоположении.)