问题描述
很长时间以来,我都在尝试修复它,但是所有选项都没有起作用,因此最终寻求帮助。让我解释一下这个问题。
- 10个不同且不相关的模块正在生成swf文件。
- 在一个模块中,我通过 maven-dependency-plugin 进入目标文件夹来处理这些swf文件。我还将air-descriptor文件和其他配置文件保留在src文件夹下。这些文件还将通过 maven-resources-plugin 复制到目标文件夹。
- 所以我要编写所需的POM文件。
步骤1和2正常运行。因此,在1和2之后,所有必需文件都存在于target下。但是我在使用ADT生成AIR文件时遇到了很大的困难。我正在使用以下POM文件-
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.test</groupId>
<artifactId>test-air-client</artifactId>
<version>19.0.0_SP_03_SNAPSHOT</version>
<packaging>air</packaging>
<name>GUI Client</name>
<properties>
<application.name>GUIClient</application.name>
<flex.framework.version>4.5.1.21328</flex.framework.version>
<flexmojos.version>3.8</flexmojos.version>
<keystore.file>${project.build.directory}/secret.p12</keystore.file>
<keystore.password>secret</keystore.password>
</properties>
<dependencies>
<dependency>
<groupId>com.example.ria</groupId>
<artifactId>example-ria-main-ui-swf</artifactId>
<version>2020.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>air-framework</artifactId>
<version>${flex.framework.version}</version>
<type>pom</type>
</dependency>
</dependencies>
<build>
<sourceDirectory>${project.build.directory}</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.example.ria</groupId>
<artifactId>example-ria-main-ui-swf</artifactId>
<version>2020.1-SNAPSHOT</version>
<type>swf</type>
<destFileName>main.swf</destFileName>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
<!-- 9 other files are also copied like this -->
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/flex</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>${flexmojos.version}</version>
<extensions>true</extensions>
<dependencies>
<!--
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.framework.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.air</groupId>
<artifactId>compiler</artifactId>
<version>${flex.framework.version}</version>
<type>pom</type>
</dependency>
-->
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>adt</artifactId>
<version>${flex.framework.version}</version>
</dependency>
</dependencies>
<configuration>
<flexBuilderCompatibility>true</flexBuilderCompatibility>
<!--<loadConfig>${settings.localRepository}/com/adobe/flex/framework/framework/${flex.version}/configs_zip/airmobile-config.xml</loadConfig>-->
<!--<sourceFile>${project.build.directory}/exampleMain.mxml</sourceFile>-->
<descriptorTemplate>${project.build.directory}/main-app.xml</descriptorTemplate>
<configurationReport>true</configurationReport>
<keystore>${keystore.file}</keystore>
<storepass>${keystore.password}</storepass>
<!--optionally include files in the AIR package -->
<includeFileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>*.*</include>
</includes>
</fileSet>
</includeFileSets>
</configuration>
<executions>
<execution>
<goals>
<goal>sign-air</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
请注意,由于我不想编译任何swf文件(它们已经存在),因此我保留Packaging = air。同样对于“ org.sonatype.flexmojos”插件,我只保留了“ com.adobe.flex.compiler adt”作为依赖项,因为我不希望有任何编译源。
我遵循相同的步骤,但是出现以下错误-
Caused by: org.apache.maven.plugin.MojoExecutionException: Error invoking AIR api
at org.sonatype.flexmojos.air.SignAirMojo.execute(SignAirMojo.java:341)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 17 more
Caused by: java.lang.NullPointerException
at org.sonatype.flexmojos.air.SignAirMojo.getAirDescriptor(SignAirMojo.java:386)
at org.sonatype.flexmojos.air.SignAirMojo.execute(SignAirMojo.java:213)
... 19 more
我搜索了该错误文本,有一些参考文献,但没有什么是具体的。 This不能解决我的问题。
但是真正的问题是,我的方法是否正确?有什么方法可以只编译AIR文件而不编译任何源文件吗?
任何建议都会受到高度赞赏。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)