2011-09-06 4 views
1

J'ai un projet maven qui contient des informations de configuration et il est empaqueté dans un fichier zip. J'utilise le plugin maven dependency pour décompresser le contenu dans $ {project.build.directory}/unpacked, puis j'exécute le plugin resource pour filtrer le contenu et le vider directement dans $ {project.build.directory}. Lorsque j'exécute maven exec, mon fichier logback.xml n'est pas récupéré. Il semble que le classpath est défini sur $ {basedir}, mais j'aimerais qu'il contienne à la fois $ {project.build.directory}, cela et les classes de test, ainsi que les classes.maven exec plugin - le logback ne fonctionne pas

Chaque fois que j'essaie d'ajouter un élément classpath, j'obtiens une erreur de configuration.

Comment est-ce que je devrais configurer mon pom.xml pour soutenir ceci et est-ce même possible?

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

        <executions> 
         <execution> 
          <id>run</id> 
          <phase>package</phase> 
          <goals> 
           <goal>java</goal> 
          </goals> 
         </execution> 
        </executions> 

        <configuration> 
         <workingDirectory>${project.build.directory}</workingDirectory> 

         <mainClass>${jar.mainClass}</mainClass> 
        </configuration> 
       </plugin> 
+0

Comment appelez-vous maven exec? – Cephalopod

+0

Je l'invoque en l'attachant au cycle de vie du paquet, je crois. Je l'ai mis dans un profil particulier, exécutable, pour que je puisse l'exécuter en disant simplement mvn clean -Pexecutable. – Walter

+0

Par défaut, le répertoire de construction doit faire partie du chemin de classe. Comment exactement exec est-il configuré et où se trouve votre fichier logback.xml? – Cephalopod

Répondre

0

Cela devrait résoudre le problème. Comment appelez-vous maven exec et comment est-il configuré en ce moment?

 <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <archive> 
        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <!-- <classpathPrefix></classpathPrefix> --> 
         <mainClass>com.stackoverflow.test</mainClass> 
        </manifest> 

        <manifestEntries> 
         <Class-Path>${project.build.outputDirectory}/unpacked/logback.xml</Class-Path> 
        </manifestEntries> 
       </archive> 
      </configuration> 
     </plugin> 
Questions connexes