2017-11-18 138 views

回答

0

您必須配置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