问题:
[ERROR] 位置: 类 cn.ffcs.dep.rule.script.javascript.JSAdapter 软件包 sun.mozilla.javascript.internal 不存在
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-p
lugin:3.1:compile (default-compile) on project sq-edi-component: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
Caused by: org.apache.maven.pluginpiler.CompilationFailureException: Compilation failure
at org.apache.maven.pluginpiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
解决:
添加javac编译时的参数bootclasspath,oracle sun不鼓励开发人员直接使用sun.*里面的代码,主要的原因是sun.*里面的代码就是实现jvm的底层代码,是平台相关的,而且相关实现随着版本升级随时可能会被替换,代码的稳定性、一致性等等都存在问题. 参考下http://docs.oracle/javase/7/docs/technotes/tools/windows/javac.html javac的相关参数说明
Sometimes, you need to pass other compiler arguments that are not handled by the Compiler Plugin itself but is supported by the compilerId selected. For such arguments, the Compiler Plugin's compilerArguments will be used. The following example passes compiler arguments to the javac compiler:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument> </configuration> </plugin> </plugins> [...] </build> [...] </project>
Or you can also use the Map version:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <compilerArguments> <verbose /> <bootclasspath>${java.home}\lib\rt.jar</bootclasspath> </compilerArguments> </configuration> </plugin> </plugins> [...] </build> [...] </project
更多推荐
maven编译找不到符号 sun.org.mozilla.javascript.internal
发布评论