我想更好地了解如何Maven的涉及资源,特别插件如何可以重用Resources
基础设施,Maven提供:Maven的资源和泊坞窗 - Maven的插件
我已经阅读Maven资源部分和看着Maven Resources Plugin。
现在我遇到了来自Spotify的Docker Maven Plugin。其中包含以下配置部分:
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
望着插件我找不到其子元素允许一个<resource>
元素的任何解释的Readme。 我假设<resource>
元素实际上与Maven的org.apache.maven.model.Resource
类有关,我可以重复使用Maven的文档来了解它的工作原理。但根据我上面链接的Maven文档,看起来<include>
元素必须嵌套在<includes>
元素中,而上面的代码清单并没有这样做。现在我很困惑。
总结:如果插件没有完全记录它的配置如何工作,我在哪里可以得到明确的答案。是否存在某种插件的XML模式引用,我可以在其中查找特定元素的工作方式?
我需要一种将构建的'jar' artifect复制到Docker镜像中的方法,不需要对'Dockerfile'中的版本进行硬编码。因此,在我的src/main/docker/Dockerfile中,我写道:“ADD backend- @ project.version @ .jar app.jar”,然后使用Maven资源插件在'target'中创建一个新的'docker/Dockerfile' 。这导致例如在最终的Dockerfile中的以下行:'ADD backend-0.5.5.jar app.jar'。我已将''设置为:'$ {project.build.directory}/docker'。没有这些,每次碰到软件的版本号时都需要触摸docker文件。 –
lanoxx