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

来源:互联网 发布:淘宝主营类目占比 编辑:程序博客网 时间:2024/06/17 04:58

一、症状

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

原创粉丝点击