如何从Maven的设定值泊坞撰写文件

问题描述:

我有泊坞撰写下面的信息 映像文件:$ {DOCKER_REGISTRY}/MDM-elasticsearch:$ {SEARCH_IMAGE_VERSION}如何从Maven的设定值泊坞撰写文件

我想设置与价值SEARCH_IMAGE_VERSION POM或从命令 mvn clean install -D {内部版本号}

您必须配置Resources to have filtering set to true并包含您的文件。例如,如果您的码头工人撰写文件位于src/main/docker/docker-compose.yml,你可以有以下配置在你的pom.xml:

<project> 
    ... 
    <build> 
    ... 
    <resources> 
     <resource> 
     <directory>src/main/docker</directory> 
     <filtering>true</filtering> 
     </resource> 
     ... 
    </resources> 
    ... 
    </build> 
    ... 
</project> 

然后,您可以直接在你的POM中指定下的参数properties

<project> 
    ... 
    <properties> 
    <DOCKER_REGISTRY>...</DOCKER_REGISTRY> 
    <SEARCH_IMAGE_VERSION>...</SEARCH_IMAGE_VERSION> 
    </properties> 
    ... 
</project> 

或者直接在命令行上:

mvn clean install -DDOCKER_REGISTRY=... -DSEARCH_IMAGE_VERSION=... 

当您运行mvn命令每一个变量来表示与${...}将被过滤并替换为在pom或命令行中配置的值。默认情况下,输出文件将在target/classes/docker-compose.yml

复制如果要指定其他输出目录,你应该配置一个Resources Plugin执行和指定outputDirectory如:

 <plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.2</version> 
     <executions> 
      <execution> 
      <id>copy-docker-compose</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/target/docker</outputDirectory> 
       <resources>   
       <resource> 
        <directory>src/main/docker</directory> 
        <filtering>true</filtering> 
       </resource> 
       </resources>    
      </configuration>    
      </execution> 
     </executions> 
     </plugin> 

注意,将在每一个过滤文件配置的目录。如果您只需要过滤某些文件,请使用include and exclude parameters