appengine-maven-plugin не выполняет автоматическое развертывание кода после изменения кода
У меня есть проект appengine maven, который использует недавно рекомендованную структуру модуля. Итак, у меня есть ушной модуль, который в свою очередь содержит 2 военных субмодуля. Я использую команду mvn appengine:devserver из каталога ear для запуска кода. Я хочу, чтобы maven развернул любое изменение кода, как только я его сохраню, чтобы я мог обновить браузер и увидеть изменения, но это, похоже, не работает. Вот мой наушник.
target / $ {project.artifactId} - $ {project.version} / * / WEB-INF / classes org.apache.maven.plugins maven-ear-plugin 2.8 5 lib war com.google.appengine appengine-maven-plugin $ {appengine.target.version} 2
<dependencies>
<dependency>
<groupId>com.blah.app</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.blah.backend</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
Следуя рекомендации на https://developers.google.com/appengine/docs/java/tools/maven я добавил ее в каталог buildOuputput в директиве build, а также указал
<configuration>
<fullScanSeconds>2</fullScanSeconds>
</configuration>
под плагином appengine-maven-plugin. Я также включил опцию "Компилировать при сохранении" в NetBeans, но Maven, похоже, не сканирует папку классов и не вносит изменения во время работы devappserver.
Прямо сейчас я застрял в чистом цикле сборки / развертывания для каждого небольшого изменения. Буду очень признателен за любую помощь в этом.
1 ответ
Мне удалось заставить его работать в Eclipse, вызвав war: взорванный на этапе компиляции и добавив сопоставление в конфигурации m2e, чтобы он запускался в инкрементных сборках в Eclipse. Я не уверен, как это будет работать в Netbeans, но, возможно, мое решение для Eclipse поможет вам.
Вот соответствующие части моего пом:
Это часть, которая настраивает войну: взорванное выполнение:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<archiveClasses>true</archiveClasses>
<webResources>
<!-- in order to interpolate version from pom into appengine-web.xml -->
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
</plugin>
Эта часть настраивает m2e (она находится в разделе сборки pom.xml):
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-war-plugin
</artifactId>
<versionRange>
[2.4,)
</versionRange>
<goals>
<goal>
exploded
</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>true</runOnIncremental>
<runOnConfiguration>true</runOnConfiguration>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>