2009-09-30 6 views
2

J'utilise exec java de Maven pour exécuter jline pour un de mes projets (POM actuel ci-dessous). Le projet étant un seul composant, toutes les dépendances étaient dans le même POM que la définition du plugin exec: java. Cela a fonctionné très bien et toutes les dépendances ont été ramassées et mises dans le classpath quand j'ai couru 'mvn exec: java'. Cependant, j'ai maintenant divisé le projet en quelques modules et j'aimerais que les dépendances de chaque module soient capturées quand exec: java est exécuté, mais je n'arrive pas à comprendre comment le configurer. Des conseils seraient grandement appréciés!Obtenir Maven exec: plugin java pour utiliser les dépendances du module projet

merci, Nick


<?xml version="1.0" encoding="UTF-8"?> 
<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> 
    <name>Lensfield</name> 
    <groupId>org.lensfield</groupId> 
    <artifactId>lensfield-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>java</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <includeProjectDependencies>true</includeProjectDependencies> 
        <includePluginDependencies>true</includePluginDependencies> 
        <executableDependency> 
         <groupId>jline</groupId> 
         <artifactId>jline</artifactId> 
        </executableDependency> 
        <mainClass>jline.ConsoleRunner</mainClass> 
        <arguments> 
         <argument>clojure.lang.Repl</argument> 
        </arguments> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>jline</groupId> 
         <artifactId>jline</artifactId> 
         <version>0.9.94</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 
    <modules> 
     <module>lensfield-share</module> 
     <module>lensfield-build</module> 
     <module>lensfield-webapp</module> 
    </modules> 
</project> 

Répondre

2

Vous pouvez spécifier un parent POM pour le projet et définir le exec-plugin dans la section pluginManagement du parent. Cela signifie que la configuration du plugin sera disponible pour tout POM enfant qui déclare une configuration de plugin minimale. Ce qui suit serait suffisant.

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
</plugin> 

Lorsque l'enfant est traité, il héritera la configuration du parent, et l'exec-plugin sera exécuté avec les dépendances du projet en cours.

+0

brillant - merci beaucoup! – eldoctoro

Questions connexes