GAE使用java模块在app上使用maven更新cron.xml

时间:2014-09-28 20:26:33

标签: java google-app-engine cron

我有一个用java编写的gae应用程序,它被分成两个不同的模块。其中一个模块具有在初始部署时安装的cron.xml。 Cron任务正常工作并按预期执行。

现在我的问题是,当我使用maven(> mvm appengine:update)重新部署我的应用程序时,如果我对cron.xml进行了更改,则在部署完成后,这些更改不会反映在服务器上。即它正在使用旧的cron.xml。

如果我尝试手动更新cron.xml(mvn appengine:cron_update),我收到错误:

“错误的参数:请求的操作不支持EAR配置”

基本上我的问题是如何更新cron.xml?

3 个答案:

答案 0 :(得分:1)

正确的命令是

mvn appengine:deployCron

答案 1 :(得分:0)

尝试从

更改appengine-maven-plugin后运行mvn appengine:cron_update
    <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>1.3.2</version>
    </plugin>

取自appengine-maven-plugin git

来自Apache-Maven and Appengine description

    <plugin>
       <groupId>com.google.appengine</groupId>
       <artifactId>appengine-maven-plugin</artifactId>
       <version>1.9.63</version>
    </plugin>

哦,您可能还需要根据this explanation使用这些标记在appengine-web.xml上描述您的应用程序和版本

    <application>_your_app_id_</application><!-- unused for Cloud SDK based tooling -->
    <version>alpha-001</version><!-- unused for Cloud SDK based tooling -->
祝你好运!

答案 2 :(得分:0)

mvn appengine:cron_update所在的文件夹中运行pom.xml命令(不是update_cron ,如前一个回答者所建议)。

这是我的pom.xml的相关部分:

<build>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
<plugins>
  <plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>1.9.63</version>
    <configuration>
      <appId>{PUT YOUR APP ID HERE}</appId>
      <version>{PUT YOUR APP VERSION HERE}</version>
    </configuration>
  </plugin>

这是我的cron.xml的样子:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
    <cron>
        <url>/hello</url>
        <description>test cron</description>
        <schedule>every 6 hours</schedule>
    </cron>
</cronentries>