У меня есть проект Maven, основанный на Google App Engine FLEX с Java времени выполнения. В этом проекте у меня есть 2 профиля, один для тестовой среды, другой для производственной среды:
<profiles>
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- profile conf -->
<profile.id>test</profile.id>
<!-- build config -->
<app.deploy.project>my-test-project</app.deploy.project>
<app.deploy.promote>true</app.deploy.promote>
<!-- project config -->
<project.config.service>my-service-name-1</project.config.service>
<project.config.host>d</project.config.host>
<project.config.username>e</project.config.username>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<!-- profile conf -->
<profile.id>production</profile.id>
<!-- build config -->
<app.deploy.project>my-production-project</app.deploy.project>
<app.deploy.promote>false</app.deploy.promote>
<!-- project config -->
<project.config.service>my-service-name-2</project.config.service>
<project.config.host>a</project.config.host>
<project.config.username>b</project.config.username>
</properties>
</profile>
</profiles>
А это мой текущий src/main/appengine/app.yaml
файл:
runtime: java
env: flex
threadsafe: true
service: ${project.config.service}
handlers:
- url: /.*
script: this field is required, but ignored
secure: always
automatic_scaling:
min_num_instances: 1
max_num_instances: 20
env_variables:
host: "${project.config.host}"
username: "${project.config.username}"
Поскольку эти файлы (после фильтрации) необходимо сохранить в папке target\appengine-staging
, я не могу создать правильную конфигурацию Maven, чтобы отфильтровать файл и создать его в соответствующей папке.
Поскольку это не файл resource
, часть <resources>
в pom.xml
не применима. Кроме того, maven-war-plugin
с конфигурацией фильтрации также не применим, поскольку эти файлы не помещаются в сам файл war.
Я пробовал что-то подобное
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archiveClasses>true</archiveClasses>
<webResources>
<resource>
<directory>${basedir}/src/main/appengine</directory>
<includes>
<include>app.yaml</include>
</includes>
<filtering>true</filtering>
<targetPath>../appengine-staging</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
но <targetPath>
запускается из каталога WAR без возможности выбора другой папки. Есть ли способ правильно отфильтровать этот файл?