2016-06-20 15 views
-1

Ich arbeite derzeit mit einer spezifischen Projektstruktur.Maven Post Build Kopie Dateien

Alle JAR-Dateien innerhalb project\WEB-INF\lib, die in project\lib

kopiert werden soll eine WAR in den Zielordner zu erstellen bereit ist, können wir solche Skript ausführen entweder Maven-antrun oder Maven-Ressource-Plugin verwenden, die vor dem eigentlichen auslösen WAR wird erstellt?

Wenn ja, wie programmiert man es dann? Die Dateien sollten nicht verschoben werden, sie sollten kopiert werden.

EDIT

die Lösung mit folgenden xml Figured und arbeiten gut, erforderlich, um diese Struktur für Openfire Plugin

Aber leider nur es passiert, wenn zweites Mal mvn package ausgeführt wird

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.hpe.sis</groupId> 
    <artifactId>TestCopy</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>TestCopy Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core --> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-core</artifactId> 
     <version>1.19.1</version> 
    </dependency> 

    </dependencies> 
    <build> 
    <finalName>TestCopy</finalName> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.1</version> 
     <executions> 
      <execution> 
      <id>copy-resources</id> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/target/TestCopy/lib</outputDirectory> 
       <resources> 
       <resource> 
        <directory>${basedir}/target/TestCopy/WEB-INF/lib</directory> 
        <filtering>false</filtering> 
       </resource> 
       </resources> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
+0

Ja. (Ihre Frage ist ein Ja, keine Antwort?) In allem Ernst, überprüfen Sie http://maven.apache.org/plugins/maven-war-plugin/ Ich verstehe nicht, warum Sie JAR-Dateien verschieben müssen. – dieend

+1

Etwas ist ernsthaft falsch mit Ihrer Einrichtung. Sie sollten JAR nicht kopieren, Sie sollten nicht einmal JAR in Ihrem Projekt haben. Kannst du dein POM posten und was genau willst du machen? Kannst du mehr Kontext geben? – Tunaki

+0

Ich möchte ein openfire-Plugin mit 'maven-archetype-webapp' archetype erstellen –

Antwort

0

Sie können dafür das copy-rename-maven-plugin Plugin verwenden:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>com.coderplus.maven.plugins</groupId> 
     <artifactId>copy-rename-maven-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
      <execution> 
      <id>copy-file</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <sourceFile>src/someDirectory/test.environment.properties</sourceFile> 
       <destinationFile>target/someDir/environment.properties</destinationFile> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Für weitere Informationen siehe: http://coderplus.github.io/copy-rename-maven-plugin/usage.html