任何人都可以帮我解决这个m2e-jdt / jdt错误吗​​?

时间:2014-03-06 19:37:49

标签: eclipse m2eclipse m2e eclipse-jdt

简介

我花了很多时间来解决这个问题bug

在我们的应用程序中,我们有很多生成的代码由cxf和jaxb生成,产生大量的警告。我们使用maven-build-helper插件自动将此代码添加到我们的项目中。 通过添加this enhancement,eclipse JDT可以为特定的源文件夹设置javac -nowarn标志。不幸的是,通过更新maven项目,标志会丢失。在SO上有几个线程,用户被bug窃听。

到目前为止我尝试了什么

所以我提出了一个聪明的解决方案,javac有一个nowarn标志。我将它设置为我的maven-compiler-plugin并指定了目录。我的maven构建很好,但我的日食构建不是。我的研究告诉我,eclipse jdt只使用maven-compiler-plugin源代码和目标版本。所以我的下一步是尝试配置EclipseCompiler,但这是不可能的,因为不可能在eclipse JDT中添加自定义编译器参数。

下一步。在.classpath文件中,eclipse JDT为每个被忽略的路径添加了ignore_optional_problems属性。通过更新eclipse中的maven项目,这个条目就会丢失。所以我开始写一个maven“ignore-source-folder”插件,它应该添加缺少的属性。为了在每次eclipse开始构建时运行插件,我还创建了一个m2e连接器来刷新.classpath文件,一切都应该没问题。 通过我的连接器测试我的插件,我意识到,它的工作原理,但只有70%的重复。

发生什么事了?

每次eclipse m2e / Jdt启动新构建时,所有类路径条目都将被删除并再次填充。当我的maven插件被eclipse触发时,竞争状态开始。

所以我开始分析jdt和m2e jdt的代码。 ignore_optional_problems标志只能在提供给JDT的patch内部手动设置,而不会存储在其他地方。通过m2e-jdt触发新构建,这些信息就会丢失。

如何解决此问题

要解决此问题,必须在jdt中添加或扩展某个元素,其中包含所有忽略的文件夹。如果触发新构建并且m2e-jdt新生成类路径文件,则应检查此元素是否有忽略的路径。 ClasspathEntryDescriptor似乎是一个很好的地方。

我的问题

我检查了jdt和m2e jdt,但我的IDE里面有很多错误,我不知道如何启动。即使我修复了代码,我也不知道如何构建和测试它。我认为我的努力将会很高,我们会讨论20或30行简单的代码。

我担心如果我将结果添加到eclipse中提交的bug中,没有人会关心它。

那么,是否有任何开发人员能够并愿意帮助我完成这项小工作?

1 个答案:

答案 0 :(得分:1)

您需要“修复”M2E的JDT project configurator。可能在m2e-core project的某个地方。因此,您的更改应从项目pom获取某种配置标志,并为JDT创建相应的类路径条目。

相关问题