3

我正在使用flexmojos-maven-plugin构建我的 Flex 模块。所以在编译阶段我得到

org.apache.maven.plugin.MojoExecutionException:编译错误!

没有关于错误发生的位置(在哪个源文件)以及编译错误的性质的信息。如果有人能指导我如何让 flexmojos-maven-plugin 打印有关编译错误的更多信息,我将不胜感激。

4

2 回答 2

2

我有一个类似的问题。第一个答案,在编译时获取更多信息是使用内置的 maven -X 选项。

mvn -X clean install

这将为您提供描述此错误发生位置的输出。对我来说,我遇到了与您遇到的错误非常相似的错误,它最终来自“Adobe 的代码”,可以这么说。

就我而言,通过浏览错误堆栈跟踪:

[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]...

我可以说它与描述符文件有关。所以我打开了我的描述符文件并(基于一些谷歌搜索)更改了以下内容:

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

至:

<content>MyAppName.swf</content>

和:

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

至:

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

第一个更改修复了空指针异常,第二个更改允许显示我的应用程序窗口。

我希望这可以帮助某人,
-gMale


编辑:

此外,请务必在 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>
于 2011-11-29T17:32:14.797 回答
0

我以前也遇到过这样的情况。事实证明,实际的错误消息隐藏在控制台输出的某处。

尝试将执行的 maven 命令生成的所有控制台输出复制粘贴到某处的文本编辑器中,然后搜索字符串“ERROR”。

于 2016-11-14T09:27:51.817 回答