maven 打jar包,class文件保留注釋(對項目源碼進行打包)


1.情景展示

在實際工作過程中,我們通常會封裝一些jar包,供內部使用;

我們知道,使用maven默認打包的情況下,是不會生成對應的注釋的(也就是.java文件當中的注釋將無法保留在class當中),這顯然,對於要使用該jar包的開發人員來說是不友好的,如何讓這些注釋原封不動地保留在編譯后的class文件當中呢?

2.具體分析

能不能將java文件編譯成class文件時保留注釋?

我先說結論:不能!

讓我們產生這種錯覺的原因是:開發工具的鍋,當開發工具檢測到有class對應的源碼(java文件)時,會自動將注釋顯示到class當中。

下面具體來看一下:

以eclipse和Map.class為例進行說明

我們可以看到:

此時此刻,我打開的這個Map類,在:D:\oracle-java-1.8-x64\jdk1.8.0_181\jre\lib\rt.jar當中;

我們順着路徑,使用java反編譯工具進行打開,會發現:

一個注釋都沒有!!!

但是,有變相的解決方案,下面會講。

還有一個問題:能不能讓自己的注釋也像jdk的官方類那樣,在鼠標懸浮到具體類時,出現具體的詳細介紹:

也無法實現,只能點擊去看具體的源碼。

3.解決方案

要想通過開發工具看到對應的class文件的注釋,必須有:對應的源碼(java文件);

注釋,只能在java當中可以有,class文件當中沒不存在釋。

所以,要想解決可以看注釋的問題,需要我們:

在將java類打成jar包的同時,生成對應的源碼jar包。

使用maven插件生成java源碼.jar。

在此標簽體里

<build>
    <plugins>
    
    </plugins>
</build>

添加:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

重新導包,等待idea從maven倉庫中下載該插件;

沒有問題后,重新打包或者安裝到本地倉庫。

打包成功后,我們可以通過日志,也可以直接查看maven本地倉庫下該jar包目錄下,會增加一個:*-sources.jar

用壓縮軟件,打開這個jar包看一下:

全是java文件(其本質就是將項目源碼拷貝一份,並打成jar包)

這樣,我在開發工具當中,調用javaUtils-1.0-SNAPSHOT.jar包當中的方法時,當我們想要查看該方法的具體解釋時,點進去,開發工具就會自動幫我們打開對應的Java類。

4.擴展

如何根據java類,生成具體的doc說明文檔?

通過maven插件實現。

查看代碼

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.3.1</version>
    <configuration>
        <attach>true</attach>
    </configuration>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
            <!-- 不讓像@Param 這種后面沒寫值的東西 報錯。-->
            <configuration>
                <additionalJOption>-Xdoclint:none</additionalJOption>
            </configuration>
        </execution>
    </executions>
</plugin>

在等待idea從maven倉庫中下載完該插件后,如果報錯信息如下:

Cannot resolve symbol 'jar' 

菜單欄--》File--》清除idea緩存並重啟。

再進來idea,就不會報錯啦。

然后,選擇:打包或者安裝到本地倉庫。

我們會發現:本地倉庫當中會多出一個*-javadoc.jar。

打開該jar包,這里就是具體的java類對應的用法說明文檔。

打開index.html,我們可查看所有類用法說明。

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM