2011-01-05 3 views
6

Mit Maven-Montage-PluginMaven. Wie kann man einen bestimmten Ordner oder eine bestimmte Datei beim Assembly-Projekt einbeziehen, je nachdem, ob es sich um einen Build oder eine Produktion handelt?

<plugin> 
<artifactId>maven-assembly-plugin</artifactId> 
<version>2.1</version> 
<configuration> 
<descriptors> 
    <descriptor>descriptor.xml</descriptor> 
</descriptors> 
<finalName>xxx-impl-${pom.version}</finalName> 
<outputDirectory>target/assembly</outputDirectory> 
<workDirectory>target/assembly/work</workDirectory> 
</configuration> 

in descriptor.xml Datei, die wir auf

<fileSets> 
    <fileSet> 
     <directory>src/install</directory> 
     <outputDirectory>/</outputDirectory> 
    </fileSet> 
</fileSets> 

Ist es möglich, enthalten bestimmte Datei aus diesem Ordner oder Unterordner je angeben Profil? Oder eine andere Art und Weise ...

So:

<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>false</activeByDefault> 
     </activation> 
     <build> 
      <resources> 
       <resource> 
        <directory>src/install/dev</directory> 
        <includes> 
         <include>**/*</include> 
        </includes> 
       </resource> 
      </resources> 
     </build> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <build> 
      <resources> 
       <resource> 
        <directory>src/install/prod</directory> 
        <includes> 
         <include>**/*</include> 
        </includes> 
       </resource> 
      </resources> 
     </build> 
    </profile> 
</profiles> 

Aber es setzt Ressourcen in Glas beim Verpacken. Aber wir müssen es in Reißverschluss setzen, wenn assemblying wie ich oben schon :( Dank erwähnt

Antwort

12

Wenn Ihre Ressourcen ein Muster haben (sagen wir *.properties), dann Sie so etwas in Ihrer Assembly Descriptor-Datei tun können:

<fileSets> 
     <fileSet> 
      <directory>${project.build.directory}</directory> 
      <outputDirectory>/</outputDirectory> 
      <includes> 
       <include>*.properties</include> 
      </includes> 
     </fileSet> 
</fileSets> 

Diese kopiert alle *.properties von Ihrem target-Ordner in dem Stammordner Ihrer Montage Reißverschluss. Basierend auf dem Profil in Ihrem pom.xml was gerade läuft, nur entsprechende Ressourcen im target Ordner vorhanden sein wird.

+0

Danke !!!!!!!!!!!!!!! – whatswrong

2

Platzieren Sie die Ausführungen des Plugins in jedem Profil, innerhalb des Tag-Builds.

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>grr</phase> 
      <goals> 
       <goal>tree</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.3.1</version> 
     <configuration> 
      <excludes> 
      <exclude>**/*.xml</exclude> 
      </excludes> 
     </configuration> 
     </plugin> 

    </plugins> 
    </build> 
    <profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
     <activeByDefault>false</activeByDefault> 
     </activation> 
     <build> 
     <plugins> 
      <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.1</version> 
      <configuration> 
       <descriptors> 
       <descriptor>descriptor.xml</descriptor> 
       </descriptors> 
       <finalName>xxx-impl-${pom.version}</finalName> 
       <outputDirectory>target/assembly</outputDirectory> 
       <workDirectory>target/assembly/work</workDirectory> 
      </configuration> 
      </plugin> 
      <resources> 
      <resource> 
       <directory>src/install/dev</directory> 
       <includes> 
       <include>**/*</include> 
       </includes> 
      </resource> 
      </resources> 
     </build> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <build> 
     <resources> 
      <resource> 
      <directory>src/install/prod</directory> 
      <includes> 
       <include>**/*</include> 
      </includes> 
      </resource> 
     </resources> 
     </build> 
    </profile> 
    </profiles> 
Verwandte Themen