2017-05-02 1 views
0

Ich habe ein Multi-Modul Maven Projekt,Maven Modulen execute jar

Ich habe 3 Module:

  1. Quelle - Der Code, den ich baue - das gibt eine .jar-Datei
  2. Java exec - erstellt ein jar, das eine jar-Datei als Argument akzeptiert, mit dem jar von Modul 1 ausgeführt werden muss und ein drittes jar ausgibt.
  3. Bash exec - Ein Bash-Skript, das mit dem Pfad des dritten Jar als Argument ausgeführt werden muss.

Wie würde ich das tun?

Ich gehe davon aus, dass ich die exec-Maven-Plugin für beide der Modifikator-Module verwenden müssen, aber ich habe keine Ahnung, wie die Dateinamen zwischen ihnen passieren

EDIT: bevor ich es in drei Module aufgeteilt , ich hatte die bash exec arbeiten, aber das Java-exec ist neu, aber ich denke, es sollte (in der richtigen Richtung für den Hinweis mich Dank Shinchan) die gleichen wie die bash exec

+0

Sie können die Abhängigkeit des Moduls 1 in Modul hinzufügen 2 und Modul 2 in Modul 3. Nicht sehr sicher, wie maven exec plugin funktioniert, aber es könnte eine Möglichkeit haben, die Artefakte von running maven builder oder maven classpath zu lesen. – Shinchan

Antwort

1

arbeitet

die maven Abhängigkeits-Plugin, ist es möglich, die Ausgabe jar von einem Modul zum anderen zu kopieren:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>3.0.0</version> 
      <executions> 
       <execution> 
        <id>copy</id> 
        <phase>package</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>GROUP_ID</groupId> 
         <artifactId>OTHER_MODULE_NAME</artifactId> 
         <version>OTHER_MODULE_VERSION</version> 
         <type>jar</type> 
         <overWrite>true</overWrite> 
         <outputDirectory>${project.build.directory}/</outputDirectory> 
         <destFileName>FILE_FROM_OTHER_MODULE.jar</destFileName> 
        </artifactItem> 
       </artifactItems> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>true</overWriteSnapshots> 
      </configuration> 
     </plugin> 

Dies führt zu einer Datei „FILE_FROM_OTHER_MODULE.jar“ im Build-Verzeichnis genannt, Jetzt kann ich die exec Argumente auf „FILE_FROM_OTHER_MODULE.jar“ Punkt

Verwandte Themen