2010-06-10 3 views
3

J'utilise flexmojos-maven-plugin pour construire mon module Flex. Donc, sur la compilation phase I reçoisComment obtenir des messages d'erreur de compilation informative lors de l'utilisation de flexmojos-maven-plugin?

org.apache.maven.plugin.MojoExecutionException: erreur de compilation!

sans information sur où (à quel fichier source) l'erreur se produit et quelle est la nature de l'erreur de compilation. J'apprécierai si quelqu'un peut m'indiquer comment faire flexmojos-maven-plugin imprimer plus d'informations sur les erreurs de compilation.

+0

Avez-vous réussi à compiler quelque chose (jamais) ou est-ce que cela fait partie d'essayer de faire fonctionner Maven pour la première fois? –

+1

Ce module était en cours de développement (et compilé) sous FlexBuilder par un autre type. Ce que j'essaye de faire est de déplacer le processus de construction à Maven. Et je me demande comment les messages d'erreur de compilation peuvent manquer de telles informations de base comme le nom de fichier, le numéro de ligne, etc. – Tony

+0

Je peux dire que je n'ai jamais eu de message d'erreur comme ça avant (Maven me donne toujours un fichier et une ligne), c'est pourquoi je demandais si vous aviez réussi à compiler quoi que ce soit. Il peut être utile d'essayer d'obtenir un projet trivial en premier. Aussi, pouvez-vous publier l'ensemble de la sortie (peut-être coller)? Parfois, le message d'erreur réel peut être assez éloigné de la dernière sortie. –

Répondre

2

J'ai eu un problème similaire. La première réponse, pour obtenir plus d'informations lors de la compilation, est d'utiliser l'option maven -X intégrée.

mvn -X clean install

Cela vous donnera la sortie qui décrit où cette erreur se produit. Pour moi, j'ai eu une erreur très similaire à celle que vous avez et elle venait en fin de compte du "code d'Adobe", pour ainsi dire.

Dans mon cas, en consultant la stacktrace d'erreur:

[ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-SNAPSHOT:sign-air 
(default-sign-air) on project barebones-air: Error invoking AIR api: NullPointerException -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-SNAPSHOT:sign-air 
(default-sign-air) on project barebones-air: Error invoking AIR api 

...[other stacktrace output, snipped]... 

Caused by: java.lang.NullPointerException 
    at com.adobe.air.ADTOutputStream.addApplicationDescriptor(ADTOutputStream.java:330) 
    at com.adobe.air.AIROutputStream.addApplicationDescriptor(AIROutputStream.java:63) 
    at com.adobe.air.ApplicationPackager.addSpecialFiles(ApplicationPackager.java:242) 
    at com.adobe.air.AIRPackager.addSpecialFiles(AIRPackager.java:172) 
    at com.adobe.air.ApplicationPackager.createPackage(ApplicationPackager.java:63) 
    at org.sonatype.flexmojos.plugin.air.packager.FlexmojosAIRPackager.createPackage(FlexmojosAIRPackager.java:72) 
    at org.sonatype.flexmojos.plugin.air.SignAirMojo.doPackage(SignAirMojo.java:332) 
    ... 26 more 

...[other stacktrace output, snipped]... 

Je pourrais dire qu'il avait quelque chose à voir avec le fichier descripteur. Donc, j'ai ouvert mon fichier descripteur et (basé sur quelques recherches de Google) a changé les éléments suivants:

<content>[This value will be overwritten by Flash Builder in the output app.xml]</content> 

à:

<content>MyAppName.swf</content> 

et:

<visible>false</visible> 
</initialWindow> 

à:

<visible>true</visible> 
</initialWindow> 

La première modification a corrigé le pointeur null ex Ception et la seconde a permis à ma fenêtre d'application d'afficher.

J'espère que cela aide quelqu'un,
-gMale


modifier:

Aussi, assurez-vous explicitement à votre descripteur dans la configuration de Flexmojos:

<plugin> 
    <groupId>org.sonatype.flexmojos</groupId> 
    <artifactId>flexmojos-maven-plugin</artifactId> 
    <version>${flexmojos.version}</version> 
    <configuration> 
     <sourceFile>${application.name}.mxml</sourceFile> 
     <finalName>${application.name}</finalName>    
     <descriptorTemplate>${project.build.sourceDirectory}/${application.name}-app.xml</descriptorTemplate> 
     <storepass>${keystore.password}</storepass> 
    </configuration> 
    <extensions>true</extensions> 
    <dependencies> 
     <dependency> 
      <groupId>com.adobe.flex</groupId> 
      <artifactId>compiler</artifactId> 
      <version>${flex.sdk.version}</version> 
      <type>pom</type> 
     </dependency> 
    </dependencies> 
</plugin> 
0

I ont été dans une situation comme celle-ci avant. Il s'avère que le message d'erreur réel est caché quelque part dans la sortie de la console. Essayez de copier-coller toutes les sorties de console générées à partir de cette commande maven exécutée dans un éditeur de texte quelque part et recherchez la chaîne 'ERROR'.

Questions connexes