2017-05-02 1 views
0

J'ai un projet Maven multimodule,modules maven execute pot construit

J'ai 3 modules:

  1. Source - Le code que je suis bâtiment - cette commande affiche un fichier .jar
  2. Java exec - construit un jar qui prend un fichier jar en argument, doit être exécuté avec le jar du module 1, sort un troisième jar.
  3. Bash exec - Un script bash qui doit être exécuté avec le chemin du troisième jar au-dessus en tant qu'argument.

Comment est-ce que je ferais ceci?

Je suppose que je dois utiliser le exec-maven-plugin pour les deux modules de modification, mais je ne sais pas comment passer les noms de fichiers entre les

EDIT: avant de le diviser en 3 modules , j'ai eu le travail de exec bash, mais l'exécutif java est nouvelle, mais je pense que cela devrait fonctionner le même que le bash exec

+0

Vous pouvez ajouter la dépendance du module 1 dans le module 2 et module 2 dans le module 3. Pas très sûr de savoir comment maven exec plugin fonctionne, mais il peut avoir une facilité à lire les artefacts de l'exécution de maven builder ou le maven classpath. – Shinchan

Répondre

1

(Merci à Shinchan pour moi pointant dans la bonne direction)

Utilisation du maven plugin de dépendance, il est possible de copier le pot de sortie d'un module à l'autre:

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

Il en résulte un fichier appelé « FILE_FROM_OTHER_MODULE.jar » dans le répertoire de construction, je peux maintenant pointer les arguments exec à « FILE_FROM_OTHER_MODULE.jar »