我在maven(maven:V_3_0_4,java:V_1_7_0_03_64b)项目上工作,有几个子项目。我也在使用持续集成服务器hudson。
我的一些子项目使用来自Signal
的api sun.misc.Signal
,在编译期间标记为Signal is internal proprietary API and may be removed in a future release
的警告。我不讨论这一点。
我目睹了一些奇怪的事情,在我的开发空间提交之后,哈德逊编辑被触发并失败了一些宏伟的痕迹:
[ERROR] toto.java[42,42] : Signal is internal proprietary API and may be removed in a future release
由于哈德森的配置没有改变,我有点失落。另一个奇怪的迹象是,这些错误出现在一个子项目中,而不是其他也出现在使用api Signal
的地方,只有警告。
在与同事进行一些调查之后,我们发现错误发生在其他地方(这是我的错误之一:专注于来自Signal
的伪错误)并在修复之后警告又回来了Signal
上的错误消失了。
目睹这些旗帜的“改变状态”是否标准?或者它是否专用于专有API:即,hudson检测错误并将专有API警告置于错误中,因为它可能是相关的?总之这里发生了什么?
答案 0 :(得分:0)
我遇到了同样的错误,这些错误之前都是警告。
[ERROR] <deleted>.java:[6,15] Unsafe is internal proprietary API and may be removed in a future release
当我在另一个代码片段发现问题并修复它时,那些问题也得到了解决。但我建议你在终端上进行mvn clean install
而不是使用IntelliJ构建。
答案 1 :(得分:0)
这可能不是你的情况,但对我有用的是在项目POM文件中使用旧版本的父POM。问题是我使用自己的聚合POM,它指向公司的父POM的最新版本,它指向JDK 1.7。恢复到使用JDK 1.6的旧版本POM后,错误消失了。
我认为曾经在1.6中的警告级别改为1.7中的错误级别。