2010-09-06 13 views
0

Je souhaite créer un fichier d'informations de construction dans l'emplacement spécifique du dossier cible du projet (en particulier dans le dossier target/abc_project/META-INF) via maven-2.Comment exécuter un fichier jar à partir de pom.xml

Ce qui suit est ce que je fais dans le pom.xml

<build> 
    <finalName>abc_project</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 

     <plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>exec-maven-plugin</artifactId> 
<executions> 
<execution> 
    <phase>package</phase> 
    <id>buid-info-generator</id> 
    <goals> 
    <goal>exec</goal> 
    </goals> 
    <configuration> 
    <executable>java</executable> 
    <arguments> 
    <argument>-jar</argument> 
    <argument>xyz.jar</argument> 
    <argument>target/abc_project/META-INF/info.txt</argument> 
    <argument>date</argument> 
    <argument>hg summary</argument> 
    </arguments> 
    </configuration> 
</execution> 
</executions> 

</plugins> 
</build> 

tout en donnant l'phase autre que install, deploy, je reçois l'erreur suivante -

[INFO] Exception in thread "main" java.io.FileNotFoundException: target\abc_project\META-INF\info.txt (The system cannot find the path specified) 
[INFO] at java.io.FileOutputStream.open(Native Method) 
[INFO] at java.io.FileOutputStream.<init>(FileOutputStream.java:179) 
[INFO] at java.io.FileOutputStream.<init>(FileOutputStream.java:131) 
[INFO] at java.io.FileWriter.<init>(FileWriter.java:73) 
[INFO] at com.nbec.svn.build.info.BuildInfoGenerator.main(BuildInfoGenerator.java:30) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Result of cmd.exe /X /C "java -jar xyz.jar target/abc_project/META-INF/info.txt "date "hg summary"" execution is: '1'. 

Mais étrangement, le même code fonctionne pour 1 projet et pas pour 2 autres projets. Y a-t-il une alternative pour obtenir la même chose?

+0

Il y a quelque chose d'étrange dans votre projet. Avez-vous changé les paramètres par défaut? D'où est-ce que target \ abc_project \ META-INF \ info.txt est censé provenir? –

Répondre

0

En fait, le rapport d'erreur indique que le répertoire target\abc_project\META-INF n'existe probablement pas. Sans plus d'informations, je ne peux que spéculer. Peut-être que le plugin qui crée le répertoire abc_project\META-INF est appelé après le exec-maven-plugin.

+0

ouais .. c'est vrai, qu'il ne crée pas le dossier abc_project lui-même jusqu'à ce moment, tout en utilisant la phase autre que install/deploy. Je ne suis pas sûr pourquoi c'est si .. si quelqu'un peut me dire quand le dossier cible complet est créé (avec tous les dossiers dépendants requis) dans maven, alors ce sera formidable. – deejay

+0

Le fichier project.build.directory (par défaut: "target") et project.build.outputDirectory (par défaut: "target/classes") sont créés pendant la phase de compilation. Avez-vous changé la propriété project.build.outputDirectory en "target \ abc_project"? – Jcs