我想更好地瞭解如何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