我正在使用 IntelliJ IDEA 将现有的 flex 项目转换为 maven 项目。根据谷歌的研发,我添加了 pom.xml 文件,并通过添加所需的依赖项解决了多个问题。但是,我现在被困在一个点上,尽管在 pom 文件中添加了所需的依赖项,但“编译”目标仍然抛出错误。
错误:
无法在项目 TA_UI_Test1 上执行目标 net.flexmojos.oss:flexmojos-maven-plugin:7.1.0:compile-swf (default-compile-swf):java.lang.reflect.InvocationTargetException:全局工件不可用。确保将“playerglobal”或“airglobal”添加到该项目中。-> [帮助 1]
pom.xml 文件:
<?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.test</groupId>
<artifactId>TA_UI_Test1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>swf</packaging>
<name>TA_UI_Test1 Flex</name>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>net.flexmojos.oss</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>7.1.0</version>
<extensions>true</extensions>
<configuration>
<sourceFile>Main.mxml</sourceFile>
<debug>true</debug>
<!--<swfVersion>11</swfVersion>-->
<!--<targetPlayer>10.2</targetPlayer>-->
</configuration>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>4.6.b.23201</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>flex-compiler-oem</artifactId>
<version>4.1.0.16076</version>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>mxmlc</artifactId>
<version>4.1.0.16076</version>
</dependency>
<!--<dependency>-->
<!--<groupId>com.adobe.flex.framework</groupId>-->
<!--<artifactId>playerglobal</artifactId>-->
<!--<version>10-3.3.0.4852</version>-->
<!--<type>swc</type>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>com.adobe.flex.framework</groupId>-->
<!--<artifactId>playerglobal</artifactId>-->
<!--<version>4.5.1.21328</version>-->
<!--<classifier>10</classifier>-->
<!--<type>2.swc</type>-->
<!--</dependency>-->
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>3.2.0.3958</version>
<classifier>9</classifier>
<type>swc</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flex-framework</artifactId>
<version>4.6.b.23201</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>asdoc</artifactId>
<version>4.6.b.23201</version>
</dependency>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>4.6.b.23201</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>flex-compiler-oem</artifactId>
<version>3.6.0.16995</version>
</dependency>
<dependency>
<groupId>com.adobe.flexunit</groupId>
<artifactId>flexunit</artifactId>
<version>0.85</version>
<type>swc</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>mxmlc</artifactId>
<version>4.1.0.16076</version>
</dependency>
<!--<dependency>-->
<!--<groupId>com.adobe.flex.framework</groupId>-->
<!--<artifactId>playerglobal</artifactId>-->
<!--<version>10-3.3.0.4852</version>-->
<!--<classifier>10.2</classifier>-->
<!--<type>swc</type>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>com.adobe.flex.framework</groupId>-->
<!--<artifactId>playerglobal</artifactId>-->
<!--<version>4.5.1.21328</version>-->
<!--<classifier>10</classifier>-->
<!--<type>2.swc</type>-->
<!--</dependency>-->
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>3.2.0.3958</version>
<classifier>9</classifier>
<type>swc</type>
</dependency>
</dependencies>
</project>
我尝试过的事情:
1. 我已经添加了工件 playerglobal 所需的依赖项,如上面的 pom.xml 文件中所示,并且我尝试了 3 个不同的版本(见上面的 pom)。但是,它们都没有帮助。
2. 我尝试在“插件”节点内添加 playerglobal 依赖项,以及在 pom.xml 中单独添加公共“依赖项”节点内。但是,他们中的任何一个都没有帮助。[尝试这两种方法的原因是,对于 flex-compiler-oem 和 mxmlc 的其他几个依赖项,当仅在公共“依赖项”节点中添加依赖项时,它无法识别所需的类。当我将它们添加到“插件依赖项”中时,它会从这些错误中继续。]
3. 按照这个文章中,我还尝试在“配置”节点之后保留“com.adobe.flex > 编译器”。然而,这也无济于事。
4. 我现在使用的是 Maven 3.2.5,但我也尝试过其他各种 Maven 版本,如 3.3.9、3.0.5、3.1.1。他们也没有帮助。(根据本文,flexmojos-maven-plugin 7.1.0 不支持 3.3.9 。它还说 maven 3.2.5 工作正常。使用 maven 3.0.5 表示所需的最低 maven 版本是 3.1.1。并且使用 maven 3.1.1 会产生与我现在使用 maven 3.2.5 相同的错误。)
我的 SDK/IDE 版本:
Maven:3.2.5
Flex:3.2.0
JDK:1.8
IntelliJ IDEA:Ultimate 2017.1
任何帮助将不胜感激。提前致谢。