`
chaoslawful
  • 浏览: 198539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

maven 中使用 eclipse compiler 代替 javac 做编译器

阅读更多

项目中用到 ANTLR 做语法解析,由于语法规则复杂,生成的 Parser 文件非常大(45k 行),用 javac 编译时直接出现 code too large (代码过长)错误无法正常处理。后来经过试验,发现 Eclipse Compiler 可以正常编译,因此考虑在 maven 中设置 Eclipse Compiler 为默认 java 编译器。在 pom.xml 中加入如下设置即可:

 

<project>
    ...
    <build>
        ...
        <plugins>
            ...
	    <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                ...
                <configuration>
                        ...
                        <compilerId>eclipse</compilerId>
                </configuration>
                <dependencies>
                    ...
                    <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-compiler-eclipse</artifactId>
                        <version>2.1</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

 

 

这里有一点需要注意,如果 plexus-compiler-eclipse 插件版本较低(1.x),在 maven 3.x  上编译时将抛出如下错误:java.lang.NoSuchMethodError: org.codehaus.plexus.compiler.CompilerError: method <init>(Ljava/lang/String;ZIIIILjava/lang/String;)V not found

 

 

0
0
分享到:
评论

相关推荐

    eclipse更新maven,jdk改变解决办法

    Maven的编译器插件默认使用javax.tools.JavaCompiler,而不是javac,所以需要手动配置插件选项forceJavacCompilerUse来强制使用javac。 此外,在pom.xml文件中没有指定jdk版本时,Maven会使用默认的source/target...

    compiler-eclipse:适用于 Java 1.8 的 Maven 编译器插件

    编译器-eclipse 适用于 ... 使用 xqbase-compiler-eclipse 作为通过 maven 编译的解决方法: &lt; build&gt; &lt; plugins&gt; &lt; plugin&gt; &lt; artifactId&gt;maven-compiler-plugin&lt;/ artifactId&gt; &lt; version&gt;3.2&lt;/ version&gt; &lt; conf

    maven找不到编译器2

    而JDK除了包含JRE之外,还包括用于开发和调试Java程序的工具,如javac编译器。 为了解决这个问题,首先需要确保你的系统已经正确安装了JDK,并且Maven知道在哪里找到它。在Eclipse这样的集成开发环境(IDE)中,你...

    如何提高Maven多模块项目编译速度.docx

    在pom.xml中添加相关配置,如设置`&lt;fork&gt;true&lt;/fork&gt;`,让Maven使用独立的JVM实例进行编译,以及设置`${JAVA_HOME}/bin/javac&lt;/executable&gt;`,指定使用哪个JDK的javac编译器。 5. **优化Maven的settings.xml**: ...

    javac源码和运行说明文件.zip

    - 使用Eclipse的调试功能,可以设置断点、单步执行,观察javac编译过程中的内部状态。 5. **学习研究**: - 通过阅读源码,了解javac如何处理语法错误、类型检查以及优化过程。 - 分析特定功能的实现,如注解...

    Compiler:该语言的编译器

    在Java开发环境中,编译器通常与构建工具如Maven或Gradle集成,它们可以自动化源代码的编译、测试和打包过程。对于大型项目,编译器还与其他工具如IDE(IntelliJ IDEA, Eclipse)紧密配合,提供实时错误检测、自动...

    Failed to execute goal org...的解决办法

    - 如果在IDE(如IntelliJ IDEA或Eclipse)中遇到此问题,需要检查IDE配置的Maven设置是否与命令行下使用的一致。 - 检查Maven默认的settings.xml文件中是否缺少了JAVA8_HOME变量的定义。 - 如果确认是IDE环境变量...

    CodeQL 闭源应用创建数据库 & SQL注入1

    描述中提到了两种编译器:ECJ(Eclipse Compiler for Java)和javac(Java的官方编译器)。ECJ推荐用于批量编译,因为它可以在没有Java运行环境的情况下工作。然而,ECJ的一个限制是它不能自动扫描指定目录下的所有...

    liferay ,ext基本配置方法.txt

    - **javac.compiler:** 修改此属性为所需的 Java 编译器版本(例如 modern)。 - **javac.fork:** 设置此属性为 true。 - **javac.memoryMaximumSize:** 设置此属性为所需的内存大小。 - 这些配置主要涉及...

    lombok-plugin-2021.3.zip

    - 编译时,需使用支持 Lombok 的编译器插件,如 Maven 或 Gradle 的 Lombok 插件,或者 IDEA 的 Javac 或 Eclipse Compiler for Java (ECJ)。 5. **注意事项:** - Lombok 的注解仅在编译期间起作用,不会影响...

    JDK-1.8 MAC M1 LINUX

    - Maven或Gradle构建工具也需要在配置文件中指定JDK-1.8版本,例如在`pom.xml`中设置`&lt;maven.compiler.source&gt;`和`&lt;maven.compiler.target&gt;`。 6. **性能优化** - 使用JDK-1.8的垃圾回收器,如G1 Garbage ...

    MxStar-Compiler

    7. **工具集集成**:MxStar可能提供与构建工具(如Maven或Gradle)、IDE(如IntelliJ IDEA或Eclipse)的无缝集成,方便开发者集成到现有的开发流程中。 8. **自定义配置**:对于大型项目,编译器的可定制性非常重要...

    java项目中使用 Lombok遇到的问题小结

    在 Maven 项目中使用 Lombok,首先需要在 `pom.xml` 文件中添加 Lombok 的依赖。如示例所示,你需要引入 `org.projectlombok` 的 `lombok` 依赖,并设置 `scope` 为 `provided`,这意味着在编译时使用 Lombok,但在...

    Eclispe/IDK配置文档

    1. **基础环境**:JDK是Java开发的基础,包含了Java编译器(javac)、Java运行时环境(JRE)以及各种开发工具,如jar打包工具、文档生成工具等。 2. **代码编译**:MyEclipse需要JDK来编译源代码,将.java文件转换...

    borl+tvion+uc70_16,一个完整的工具链条,适合开发者

    1. **编译器与解释器**:如GCC(GNU Compiler Collection)用于C/C++,Java编译器Javac用于Java,Python解释器Python Interpreter等,这些都是将源代码转化为可执行程序的关键组件。 2. **IDE(集成开发环境)**:...

Global site tag (gtag.js) - Google Analytics