2013-08-06 12 views
6

Sto imballando la mia applicazione come jar.Maven: file di proprietà insieme al jar

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>...</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 

E anche io ho la mia .properties file collocato all'interno di src/main/resources. Posso spostare liberamente questo file in qualsiasi altro posto. Non voglio che il file delle proprietà sia incluso in jar, ma piuttosto inserito nella stessa directory di output (dove troviamo jar) side-by-side. Qual è la migliore pratica per questo a Maven?

+1

possibile duplicato di [Come escludere file di poperties da file jar?] (Http://stackoverflow.com/questions/2728993/how-to-exclude-poperties-file-from-jar-file) –

risposta

9

Ok, è possibile utilizzare l'obiettivo resources:copy-resources di maven-resources plug-in. Sto semplicemente lasciando la cartella standard risorse per risorse incorporate (in jar). E per risorse esterne creo un'altra cartella: src/main/external-resources. Qui metto il mio file .properties.

Il seguente pezzo copierà le risorse esterne per l'output dir alla fase di convalida. È possibile modificare la fase in base alle proprie esigenze.

 <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>copy-resources</id> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}</outputDirectory> 
         <resources> 
          <resource> 
           <directory>src/main/external-resources</directory> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

Mentre costruisci lo stesso usando Jenkins perché vediamo solo jar ma non la directory che configuriamo qui in Nexus –