您的位置:首页 > 编程语言 > Java开发

关于 Java 打包工具 jar 的接口形参名称丢失问题

2017-11-29 13:13 337 查看

一、症状

如图:



图中是谷歌二维码生成工具的某个接口,可以看到方法的形参已经变成不易阅读的 var XX 了,而且调用方法时的提示也只有 varXX。这篇博文就解决这个问题的。

二、实质

这种现象与打包工具无关,java 项目可以被打包成 XXX.jar 和 XXX-sources.jar 举个例子:

Junit 相关下载传送门



其实形参的可读性对机器识别和运行没有价值,所以从源码到可执行程序的过程中,会根据机器运行的需要做一些”优化”,即便这些对人来说带来了一些麻烦。所以通常情况下 jar 打包出来就是不包含接口等形参信息的。

那万一在开发阶段我还是想要得到形参信息怎么办呢?这个时候我们就需要引入 XXX-sources.jar 了。这种 jar 里是包含完整源码信息的,引入它就满足了我们的需求。



例如 IDEA 里可以这样引入。

三、如何打包出带源码信息的 jar

本文以 Maven 为例

在被打包项目 的 pom.xml 中核心内容

<project> <!--其他项目自定义配置省略-->
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attch-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>


余下的操作和正常Maven 正常打包无任何区别可自行搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: