2013-12-23 10 views
9

Ich habe ein Projekt, das ich die endgültige Ausgabedatei umbenennen muss, die von Maven Assembly Plugin erzeugt wird, nachdem alles andere fertig ist (in dem Kompilierungs-/Gebäude-/Montageprozess).Maven eine Datei umbenennen, nachdem alles andere fertig ist

Die Maven Assembly Plugin generiert eine endgültige .zip Datei, basierend auf dem Projektnamen, und ich muss dies vollständig in final-version.oxt umbenennen. Ich versuche, das maven-antrun-plugin zu verwenden, um es umzubenennen, wie durch andere ähnliche Fragen hier gezeigt, aber kein Glück (ich habe Maven oder Ant vorher nie benutzt, also vielleicht vermisse ich etwas).

Dies ist der <build> Abschnitt des Projekts pom.xml. Der Umbenennungsteil scheint vollständig ignoriert zu werden, da in meinem Ordner home keine Datei generiert wird.

<build> 
    <plugins> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
        <id>assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>attached</goal> 
        </goals> 
        <configuration> 
         <archive> 
          <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> 
         </archive> 
         <descriptors> 
          <descriptor>src/main/assembly/ooo-jar.xml</descriptor> 
          <descriptor>src/main/assembly/ooo.xml</descriptor> 
         </descriptors> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>deploy</phase> 

        <configuration> 
         <tasks> 
          <copy file="${project.build.directory}/target/libreofficeplugin-ooo.zip" 
          tofile="/home/brunofinger/final-version.oxt" /> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

    </plugins> 
</build> 

Antwort

9

Einige Änderungen haben es ausgehalten, wahrscheinlich die phase falsch war, aber mit <phase>install</phase> scheint es funktioniert:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>install</phase> 

        <configuration> 
         <target> 
          <copy file="${project.build.directory}/libreofficeplugin-ooo.zip" tofile="${project.build.directory}/final-version.oxt" /> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
-1

Sie müssen keine Antrun verwenden, um die Ausgabedatei umzubenennen. Verwenden Sie einfach das Tag finalName des Assembly-Plugins, um die Ausgabedatei umzubenennen.

<?xml version="1.0" encoding="UTF-8"?> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
     <id>assembly</id> 
     <phase>package</phase> 
     <goals> 
      <goal>attached</goal> 
     </goals> 
     <configuration> 
      <archive> 
       <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> 
      </archive> 
      <descriptors> 
       <descriptor>src/main/assembly/ooo-jar.xml</descriptor> 
       <descriptor>src/main/assembly/ooo.xml</descriptor> 
      </descriptors> 
      <finalName>final-version.oxt</finalName> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
+1

Es hat nicht funktioniert, es fügt immer noch die '.zip' Erweiterung an das Ende der Datei an und erzeugt eine Datei namens' final-version.oxt.zip'. Ich muss das '.zip' loswerden. –

+1

Sie haben Recht. Der finalName benennt nur den Namen der Datei um, nicht die Erweiterung. –

+0

Das Konfigurationselement 'finalName' existiert nicht mehr in maven-assembly-plugin 3.0.0. – Barett

6

Diese Frage ist fast ein Jahr alt, aber falls jemand anders ist Angesichts ähnlicher Probleme, hier ist eine alternative Lösung.

Wenn Sie für einen mavenish Weg suchen, es zu tun, können Sie

<plugin> 
    <groupId>com.coderplus.maven.plugins</groupId> 
    <artifactId>copy-rename-maven-plugin</artifactId> 
    <version>1.0.1</version> 
    <executions> 
     <execution> 
     <id>rename-file</id> 
     <phase>install</phase> 
     <goals> 
      <goal>rename</goal> 
     </goals> 
     <configuration> 
      <sourceFile>${project.build.outputDirectory}/libreofficeplugin-ooo.zip</sourceFile> 
      <destinationFile>${project.build.outputDirectory}/final-version.oxt</destinationFile> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

verwenden und im Fall, dass Sie anstelle von Umbenennungs zu kopieren, verwenden Sie das copy Ziel anstelle des rename Ziels.

Verwandte Themen