0

io.fabric8 docker-maven-plugin によって埋められた Maven プロパティは、そのまま使用すると補間されないようです。

docker-maven-plugin は、私が解決しようとしているいくつかの Maven プロパティ(some.hostおよびsome.port) を埋めます。

<plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.15.5</version>
    <configuration>
        <images>
            <image>
                <alias>...</alias>
                <name>...</name>
                <run>
                    <ports>
                        <port>+some.host:some.port:5432</port>
                    </ports>
                    <namingStrategy>alias</namingStrategy>
                </run>
            </image>
        </images>
    </configuration>
</plugin>

それらは次のように使用されます。

<properties>
    <docker.host>${some.host}</docker.host>
    <docker.port>${some.port}</docker.port>
</properties>

これにより、2 つの空の値が生成されます。それらには何も含まれていませんが、eg127.0.0.1とが含まれている必要があり5555ます。


いくつかの文字を追加すると、突然値が正しく補間されます (もちろん、値は役に立たない)

<properties>
    <docker.host>${some.host}+abc</docker.host>
    <docker.port>${some.port}+123</docker.port>
</properties>

127.0.0.1+abcとにつながる5555+123


私が試したいくつかのこともうまくいきません:

<properties>
    <dollar>$</dollar>
    <docker.host>${dollar}{some.host}</docker.host>
    <docker.port>${some.port}${}</docker.port>
</properties>

これは空の値につながり、5555null

4

1 に答える 1

0

Roland Hußさんは、dockers の固定ポートを使用することでこの問題を回避できると指摘しました。そして、それが最初の選択であるべきです。

しかし、完了するために、私も機能するソリューションを追加します。

  1. Maven をだまして空のプロパティを作成させます (例: groovy-maven-plugin を使用)

        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>groovy-maven-plugin</artifactId>
            <version>2.0</version>
            <executions>
                <execution>
                    <id>set empty property</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                    <configuration>
                        <source>
                                <![CDATA[
                            project.properties.setProperty('empty', '');
                            ]]>
                            </source>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    
  2. 空のプロパティを使用して、docker-maven-plugin によって公開されたプロパティを maven に補間させます。

    <docker.host>${some.host}${empty}</docker.host>
    <docker.port>${some.port}${empty}</docker.port>
    
于 2016-08-05T09:19:22.703 に答える