有关Maven编译DeprecatedAPI失败的问题


在项目代码里用了sun.misc.Signal和sun.misc.SignalHandler, 自己的Mac下编译没问题, 在别人的Windows下编译报”警告:sun.misc.Signal 是 Sun 的专用 API,可能会在未来版本中删除”, 警告也就算了, 还tmd编译失败, maven -e打出来的异常是:

[INFO] Trace  
org.apache.maven.BuildFailureException: Compilation failure  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)  
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)  
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)  
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)  
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
        at java.lang.reflect.Method.invoke(Method.java:597)  
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)  
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)  
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)  
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)  
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure  
        at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516)  
        at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)  
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)  
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)  
        ... 17 more 

看到这个我估计就是maven的问题了, 搜了一下, 居然发现“钱总”在部门的team blog里发了篇有关这个问题的blog ,真tmd悲剧,早知道也不用费那么些周折搜来搜去了。

恍然记得平台另一个框架里也用了sun.misc包里的东西,就问了下他们怎么编译过的, 最后的答案是直接把类拷贝出来了 :-( 这也行…

这里是钱总那里讨过来的解决方法:

<plugin>   
    <groupId>org.apache.maven.plugins</groupId>   
    <artifactId>maven-compiler-plugin</artifactId>   
    <version>2.3.1</version>   
    <configuration>   
        <optimize>true</optimize>   
    </configuration>   
    <dependencies>   
        <dependency>   
        <groupId>org.codehaus.plexus</groupId>   
        <artifactId>plexus-compiler-javac</artifactId>   
        <version>1.8.1-patch</version>   
            </dependency>   
    </dependencies>   
</plugin>

其实最简单的方法就是别用中文的locale,哈哈


>>>>>> 更多阅读 <<<<<<

「为AI疯狂」星球上,扶墙老师正在和朋友们讨论有趣的AI话题,你要不要⼀起来呀?^-^
这里

  1. 不但有及时新鲜的AI资讯和深度探讨
  2. 还分享AI工具、产品方法和商业机会
  3. 更有体系化精品付费内容等着你,加入星球(https://t.zsxq.com/0dI3ZA0sL) 即可免费领取。(加入之后一定记得看置顶消息呀!)

知识星球二维码

存量的时代,省钱就是赚钱。
在增量的时代,省钱其实是亏钱。
避坑儿是省钱的一种形式,更是真正聪明人的选择!
弯路虽然也是路,但还是能少走就少走,背后都是高昂的试错成本。
订阅「福报」,少踩坑,少走弯路,多走一步,就是不一样的胜率!

订阅「福报Premium订阅」