【问题标题】:How to get informative compile error messages when using flexmojos-maven-plugin?使用 flexmojos-maven-plugin 时如何获取信息性编译错误消息?
【发布时间】:2010-06-10 11:30:32
【问题描述】:

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

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

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

【问题讨论】:

  • 你有没有(曾经)编译过任何东西,或者这是第一次尝试让 Maven 工作的一部分?
  • 这个模块是由另一个人在 FlexBuilder 下开发(和编译)的。我想要做的是将构建过程移至 Maven。我想知道编译错误消息怎么会缺少文件名、行号等基本信息。
  • 我可以说我以前从未收到过这样的错误消息(Maven 总是给我文件和行),这就是为什么我问你是否成功编译了任何东西。首先尝试构建一个简单的项目可能会有所帮助。另外,你能发布整个输出(也许是pastebin)吗?有时实际的错误消息可能与最后的输出相距甚远。

标签: apache-flex compiler-errors maven flexmojos


【解决方案1】:

我遇到了类似的问题。第一个答案,在编译时获取更多信息是使用内置的 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>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2013-06-12
      相关资源
      最近更新 更多