当前位置: 首页 > 面试题库 >

在Maven构建中使用Eclipse Java Compiler(ecj)

谢夜洛
2023-03-14
问题内容

Eclipse使用它自己的编译器(ECJ)来编译Java代码。调试使用Eclipse编译的程序更加容易,因为可以立即应用简单的代码更改(通过热代码替换)。

另一方面,Maven使用(默认情况下)oracle JDK,它会生成不同的字节码,从而防止在Eclipse调试会话中进行热代码替换。

因此,如果我打算调试程序,我想在我的maven构建中使用Eclipse ECJ编译器。对我来说,便捷的方式是使用“ ecj”配置文件:

  • 编译发布

    $ mvn package
    
  • 编译快照并启用热代码替换

    $ mvn -P ecj package
    

此外,可以在settings.xml甚至Eclipse项目属性中指定概要文件激活。

我的问题是:

  1. 这是正确的方法吗?
  2. 如何配置?
  3. 可以使用Maven工具链吗?

问题答案:

可以更改javac.NET使用的默认编译器maven-compiler- plugin。Eclipse编译器捆绑在工件中,plexus-compiler- eclipse并通过设置eclipse为的compilerId属性来声明maven-compiler-plugin

如果要为自定义配置文件激活此更改,则可以具有以下配置:

<profile>
  <id>ecj</id>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.0</version>
        <configuration>
          <compilerId>eclipse</compilerId>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-compiler-eclipse</artifactId>
            <version>2.8.1</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</profile>

该插件在plexus-compilerGitHub存储库中维护。版本2.8.1 使用JDT的3.11.1.v20150902-1521,尽管您可以通过org.eclipse.tycho:org.eclipse.jdt.core在Plexus编译器依赖项之后添加依赖项来使用自己的版本。



 类似资料:
  • 问题内容: 我有一个项目,我现在开始作为Maven项目,但是由于某种原因,它无法正常工作。这是我的pom.xml: 问题答案: 实际上,您的POM看起来有点奇怪: 它缺少Webapp项目的权利。 Maven War插件配置看起来不正确,您只是不需要添加的额外内容。 这是最小pom的样子: 因此,要么修改它,然后更新项目配置( 右键单击 您的项目,然后 右键单击 Maven >更新项目配置)。 或者

  • 我试图使用maven插件为maven java项目添加一个源文件夹到Eclipse。 从http://mojo.codehaus.org/build-helper-maven-plugin/usage.html上的文档来看,这应该是正确的吧?文件夹target/sources/mygeneratedfiles存在。

  • 我是新来的詹金斯!我设法在Jenkins中克隆了GIT hub repo,现在试图在Jenkins中构建提取的maven项目。我从GITHUB获取了7个项目,它们相互依赖,也就是说,一些项目在其POM中为其他项目定义了依赖关系。 以下是我的maven配置(对不起,不能在这里张贴图片,见粗体) 根POM myFirstProject/POM.xml 目标和选项清洁包安装 MAVEN_OPTS 备用设

  • 我。 我有一个名为的模块,我希望将它的所有依赖项打包到一个JAR中。我不想每次都创建fat big jar,并将其与应用程序代码一起部署。我的应用程序jar的大小<1 MB,但依赖性>20 MB 在我的服务器上,我将运行我的应用程序,如下所示: 当我更改应用程序代码时,我只需要将部署到我的服务器,并且只有当我更改依赖项时才需要上传(这是非常罕见的)。 有很多关于如何使用java源代码构建fat j

  • 我正在学习RESTfulWeb服务教程http://www.concretepage.com/spring-4/spring-4-rest-web-service-json-example-tomcat.Is具有spring框架依赖项。我没有下载二进制文件并将其放入lib目录,而是在pom中包含了一个依赖项。xml类似 当我右键单击-