2011-02-08 34 views
15

Sadece 1 dağıtılabilir kavanoz oluşturmak için bizim politikamızdır. tüm ortama özgü konfigürasyonlar ayrı tutulur ve hepsini bir arada bir araya getiririz. Bu nedenle, mevcut Ant işlemimiz altında, her ortam için bir özellik dosyasına sahibiz, bunların üstesinden gelmek ve her ortam için bir dizi yapılandırma dosyası oluşturmak.Maven Tek seferde birden fazla profil oluşturun

Geçerli POM XML'imde, Komut satırında yalnızca bir profil oluşturabiliyorum. Maven üzerinden ulaşmak mümkün mü?

Burada .....

Teşekkür pom.xml

<!-- Define profiles here and make DEV as default profile --> 
<profiles> 

    <!-- dev Profile --> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
    </profile> 

    <!-- qa Profile --> 
    <profile> 
     <id>qa</id> 
     <properties> 
      <env>qa</env> 
     </properties> 
    </profile> 

    <!-- prod Profile --> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <env>prod</env> 
     </properties> 
    </profile> 

</profiles> 
... 


<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.4.3</version> 

    <executions> 
     <execution> 

      <phase>validate</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 

      <configuration> 

       <filters> 
        <filter>env/${env}.properties</filter> 
       </filters> 

       <outputDirectory>${project.build.directory}/config/${env} 
       </outputDirectory> 
       <resources> 
        <resource> 

         <filtering>true</filtering> 

         <directory>${basedir}/src/main/config/default 
         </directory> 
         <includes> 
          <include>*.xml</include> 
          <include>*.properties</include> 
         </includes> 
        </resource> 

ilgili bölümünün bazılarıdır, Prabhjot

+0

Bunun için aşağıdaki geçici çözüm açıklanmıştır: https://stackoverflow.com/questions/12320322/build-multiple-artifacts-with-different-classifiers-at-once – stokito

cevap

19

Maven karınca gibi değildir. Karınca ile, bunu yapmak istediğinizde istediğiniz şeyi yapabilirsiniz. Maven ile, açık ve belgelenmiş bir build life cycle vardır ve bir bileşen oluşturmayı (ve muhtemelen başka yapıları yapıya ekleyerek) hedeflemiştir.

Yapmayı planladığınız şey, ancak birden çok kez, ancak farklı parametrelerle bir bileşen oluşturmaktır. Bu, maven yaşam döngüsüne uymuyor. Yani yapmanız gereken şey, bazı harici işlemlerin yinelemeyi yapmasına ve maven'i farklı parametrelerle art arda çağırmasına neden olmaktır.

Bunu gerçekleştirmenin klasik yolu bir kabuk komut dosyası kullanmak olabilir, ancak Java veya Maven bağlamından ayrı bir işlem başlatmak için Maven Invoker'u da kullanabilirsiniz.

İlgili konular