1

ResourcesMaven がリソースを処理する方法、特に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>

プラグインのReadmeを見ると、要素に許可されている子要素についての説明が見つかりませんでした<resource>。この要素は実際には Maven のクラスに関連しており、Maven のドキュメントを再利用して誰が機能するかを理解できると想定しています。しかし、上でリンクしたMavenのドキュメントによると、要素は要素内にネストする必要があるようですが、上記のコードリストではネストされていません。今、私は混乱しています。<resource>org.apache.maven.model.Resource<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>

重要なのは、次の 2 つのタグです。

<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 に答える