2013-08-06 15 views
6

Ich verpacke meine Anwendung als Glas.Maven: Eigenschaften-Datei neben Glas

 <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> 

Und auch habe ich meine .properties-Datei innerhalb von src/main/resources platziert. Ich kann diese Datei frei an jeden anderen Ort verschieben. Ich möchte nicht, dass properties-Datei in jar eingefügt wird, sondern in das selbe Ausgabeverzeichnis (wo wir jar bekommen) Seite an Seite platziert wird. Was ist die beste Praxis dafür in Maven?

+1

möglich Duplikat [Wie poperties Datei aus JAR-Datei ausschließen?] (Http://stackoverflow.com/questions/2728993/how-to-exclude-poperties-file-from-jar-file) –

Antwort

9

Okay, man kann das Ziel resources:copy-resources von maven-resources plugin verwenden. Ich verlasse nur Standard Ressourcen Ordner für eingebettete (in Jar) Ressourcen. Und für externe Ressource erstelle ich einen anderen Ordner: src/main/external-resources. Hier stelle ich meine .properties-Datei.

Das folgende Stück kopiert externe Ressourcen zur Ausgabe von dir nach Validierungsphase. Sie können die Phase nach Ihren eigenen Bedürfnissen ändern.

 <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

Beim Erstellen des gleichen mit Jenkins sehen wir nur jar, aber nicht das Verzeichnis, das wir hier in Nexus konfigurieren –