gpt4 book ai didi

java - Maven资源过滤未执行

转载 作者:行者123 更新时间:2023-12-01 18:40:42 26 4
gpt4 key购买 nike

我有一个包含以下行的 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 被替换。由于某种原因,这不是真的。然后我使用 Debug模式运行构建,它输出以下内容:

[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 所在的同一文件夹中,但是那里也没有应用过滤...

最佳答案

您是否使用 Spring Boot 作为父项目?

如果是这种情况,Dockfile 中的值将使用 @key@

ENTRYPOINT ["java", 
"-Dconversion.rules.folder=/var/rules",
"-jar",
"/var/gateway-service-@project.version@.jar"]

SpringBoot就是这样工作的

关于java - Maven资源过滤未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59937386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com