一、症状
如图:
图中是谷歌二维码生成工具的某个接口,可以看到方法的形参已经变成不易阅读的 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 正常打包无任何区别可自行搜索