У меня есть Dockerfile, содержащий следующую строку:
ENTRYPOINT ["java", "-Dconversion.rules.folder=/var/rules", "-jar", "/var/gateway-service-${project.version}.jar"]
Я настраиваю maven-resources-plugin
следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-docker-artifacts</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>package</phase>
<configuration>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes>
<include>${project.artifactId}.tar</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/docker</directory>
<filtering>true</filtering>
</resource>
</resources>
<outputDirectory>${project.build.directory}/docker</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Как вы можете видеть Я ожидаю замены project.version
. По какой-то причине это не так. Затем я запустил сборку, используя режим отладки, и она выдает следующее:
[INFO] Copying 1 resource
[DEBUG] Copying file Dockerfile
[DEBUG] file Dockerfile has a filtered file extension
[DEBUG] filtering ...\src\main\docker\Dockerfile to ...\target\docker\Dockerfile
[DEBUG] no use filter components
Мне кажется, что фильтрация должна работать, однако файл в target
по-прежнему содержит ${project.version}
. Что мне здесь не хватает?
Я также пытался поместить другие файлы, не относящиеся к Dockerfile, в ту же папку, в которой находится Dockerfile, однако там тоже не применяется фильтрация ...