2015-11-12 12 views
8

Bazı modüllerin Docker görüntüsü olarak oluşturulması gereken çok modüllü bir Maven projem var.Maven: Bir ana projede bir alt projenin derleme dizinine nasıl başvurulur?

Veli POM:

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>com.spotify</groupId> 
     <artifactId>docker-maven-plugin</artifactId> 
     <version>0.3.5</version> 
     <configuration> 
      <baseImage>java</baseImage> 
      <imageName>${project.artifactId}</imageName> 
      <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> 
      <resources> 
      <resource> 
       <targetPath>/</targetPath> 
       <directory>${project.build.directory}/${project.build.finalName}-executable</directory> 
       <include>${project.build.finalName}.jar</include> 
       <include>lib/*.jar</include> 
      </resource> 
      </resources> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 

Çocuk POM: Öyle gibi üst POM yapılandırmanın tüm koymak için çalıştı

<build> 
    <plugins> 
    <plugin> 
     <groupId>com.spotify</groupId> 
     <artifactId>docker-maven-plugin</artifactId> 
    </plugin> 
    </plugins> 
</build> 

Ama çocuk projesine mvn docker:build çalıştırdığınızda ben project.build.directory özelliği, çocuğun hedef dizini yerine ana POM'nin hedef dizinine çözümlendiği için bir hata oluştu.

Ana POM'daki özelliklerin genişletilmesini geciktirmek mümkün mü? Ya da çocuğun ana POM'undan project.* özelliklerine başvurmak için?

+1

Mvn docker yaparsanız, mümkün değil: build in child, $ {project.build.directory} = child/target, pluginManagement eklentiniz. Günlüğü göster? –

cevap

0

Sorun şu ki, sürüm için de şu özellikleri kullandım (Maven version with a property gibi). Bu sadece Maven'i toplayıcı POM'dan çalıştırırken çalışır. Açık sürümlere geçiş (ve bunları güncellemek için maven-release-plugin kullanarak), bu sorunu çözmüştür.

İlgili konular