Я бы хотел получить версию для моего приложения AppEngine Standard из версии POM, используя цель maven-build-helper-plugin
regex-property
, чтобы превратить версию Maven POM в допустимую строку версии GAE (строчные буквы, только буквенно-цифровые символы и подчеркнуть).
Так что в POM я пытаюсь сделать это:
<groupId>foobar.tests</groupId>
<artifactId>version-test</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>compute-gae-version</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>gae.version</name>
<regex>[^A-Za-z0-9]+</regex>
<value>${project.version}</value>
<replacement>-</replacement>
<failIfNoMatch>false</failIfNoMatch>
<toLowerCase>true</toLowerCase>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<deploy.version>${gae.version}</deploy.version>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
<dependencies>
[...]
</dependencies>
За исключением, конечно, не работает: приложение развертывается с меткой версии, рассчитанной по метке времени по умолчанию. Я понимаю, что это потому, что блок configuration
для плагина AppEngine оценивается раньше, до запуска build-helper.
Есть ли способ это исправить?