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

一、症状

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

猜你喜欢

转载自blog.csdn.net/u014430366/article/details/78663700
今日推荐