我试图在Eclipse中使用2个模块构建maven项目,一个是java代码,另一个是flex代码。
instaled maven版本是3.3.9,jdk是jdk7_u80。
maven install -X命令给了我以下错误:
[DEBUG]查看包装swf的生命周期映射 ClassRealm [项目> project.project:prjt-FLEX:01.00.00, parent:ClassRealm [maven.api,parent:null]] [ERROR]内部错误: java.lang.ClassCastException:java.lang.String无法强制转换为 org.apache.maven.lifecycle.mapping.LifecyclePhase - > [帮助1] org.apache.maven.InternalErrorException:内部错误: java.lang.ClassCastException:java.lang.String无法强制转换为 org.apache.maven.lifecycle.mapping.LifecyclePhase at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:121)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)at at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)at at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)at at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606)at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 造成:java.lang.ClassCastException:java.lang.String不能
转换为org.apache.maven.lifecycle.mapping.LifecyclePhase
问题似乎来自flex模块,在下面的pom.xml中:
<properties>
<flex.version>4.5.1.21328</flex.version>
<template.dir>src/main/html-template</template.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<flexmojos.version>4.0-RC2</flexmojos.version>
</properties>
<build>
<sourceDirectory>src/main/flex</sourceDirectory>
<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>${flexmojos.version}</version>
<extensions>true</extensions>
<configuration>
<fullSynchronization>true</fullSynchronization>
<showWarnings>false</showWarnings>
<optimize>true</optimize>
<allowSourcePathOverlap>true</allowSourcePathOverlap>
<sourceFile>flexprojt.mxml</sourceFile>
<output>target/flexprojt.swf</output>
<localesCompiled>
<locale>en_US</locale>
</localesCompiled>
<includeStylesheets>
<stylesheet>
<name>style.css</name>
<path>assets/css</path>
</stylesheet>
</includeStylesheets>
<localesSourcePath>locale/{locale}</localesSourcePath>
<compilerSourcePath>
<path>src/main/flex</path>
</compilerSourcePath>
<rslUrls>
<rsl>{artifactId}_{version}.{extension}</rsl>
</rslUrls>
<targetPlayer>${flash.version}</targetPlayer>
<fonts>
<advancedAntiAliasing>true</advancedAntiAliasing>
<maxCachedFonts>20</maxCachedFonts>
<maxGlyphsPerFace>1000</maxGlyphsPerFace>
<managers>
<manager>flash.fonts.JREFontManager</manager>
<manager>flash.fonts.AFEFontManager</manager>
<manager>flash.fonts.BatikFontManager</manager>
<manager>flash.fonts.CFFFontManager</manager>
</managers>
</fonts>
<modules>
<module>
<sourceFile>context.mxml</sourceFile>
<finalName>context</finalName>
<destinationPath>/</destinationPath>
</module>
</modules>
</configuration>
<executions>
<execution>
<goals>
<goal>wrapper</goal>
</goals>
<configuration>
<templateURI>folder:html-template</templateURI>
<parameters>
<swf>${project.build.finalName}</swf>
<width>100%</width>
<height>100%</height>
</parameters>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-threadlocaltoolkit-wrapper</artifactId>
<version>${flexmojos.version}</version>
</dependency>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>flex-fontkit</artifactId>
<version>${flex.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>afe</artifactId>
<version>${flex.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.compiler</groupId>
<artifactId>aglj40</artifactId>
<version>${flex.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.adobe.cairngorm</groupId>
<artifactId>cairngorm3</artifactId>
<version>3.0.21</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
答案 0 :(得分:0)
我通过使用maven 3.1.1版本构建项目来修复此问题。
但是我仍然想用3.3.9版本构建它,我不知道我需要哪个版本的flex编译器。
答案 1 :(得分:0)
您应该将IDE指向使用外部安装的(在操作系统上)maven版本,而不是使用其捆绑的maven。