1

我想更好地了解 Maven 如何处理资源,特别是插件如何重用ResourcesMaven 提供的基础设施:

我已经阅读了 Maven 的资源部分查看了Maven 资源插件

现在我遇到了来自 Spotify的Docker Maven 插件。其中包含以下配置部分:

<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>我假设<resource>元素实际上与 Maven 的org.apache.maven.model.Resource类有关,并且我可以重用 Maven 的文档来了解它的工作原理。但是根据我上面链接的 Maven 文档,似乎<include>元素必须嵌套在<includes>上面的代码清单没有做的元素内。现在我很困惑。

总结一下:如果插件没有准确记录其配置的工作原理,我在哪里可以找到明确的答案。插件是否存在某种 XML 模式参考,我可以在其中查找特定元素的工作方式?

4

1 回答 1

2

我想你想设置如下配置:

<dockerDirectory>src/main/docker</dockerDirectory>
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>

例如,您可以通过以下方式使用这些:

通过以下方式解决此问题:

        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>yourImageName</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <dockerHost>https://192.168.99.100:2376</dockerHost>
                <dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>

重要的是这两个标签:

<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>

我正在使用 dockerfile,您必须使用此标签定义哪个路径:

<dockerDirectory>src/main/docker</dockerDirectory>  

现在您可以通过以下方式构建您的 jar 并生成 docker 映像:

mvn 包 docker:build

于 2017-01-12T19:46:28.870 回答