【Java】class.jar和sources.jar及javadoc.jar 三種jar包


一、普及jar包知識

  例如(舉例子解釋)

  • 類文件(.class) test-java-1.0-SNAPSHOT.jar

  • 文檔包(API) test-java-1.0-SNAPSHOT-javadoc.jar

  • 資源包(code) test-java-1.0-SNAPSHOT-sources.jar

  

二、使用方法

1.類文件(.class) test-java-1.0-SNAPSHOT.jar

  反編譯,最暴力直接的方法,將jar包拖進IDEA里查看

2.文檔包(API) test-java-1.0-SNAPSHOT-javadoc.jar

  解壓該文件,打開index.html查看

  

3.資源包  test-java-1.0-SNAPSHOT-sources.jar

  拖進IDEA直接查看

二、生成方法

1.類文件(.class) test-java-1.0-SNAPSHOT.jar

  直接使用maven打包生成即可

2.文檔包(API) test-java-1.0-SNAPSHOT-javadoc.jar

  使用 maven-javadoc-plugin 插件生成javadoc.jar

3.資源包  test-java-1.0-SNAPSHOT-sources.jar

  使用 maven-source-plugin 插件生成sources.jar

完整pom文件如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.test</groupId>
 8     <artifactId>test-java</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10     <dependencies>
11         <dependency>
12             <groupId>junit</groupId>
13             <artifactId>junit</artifactId>
14             <version>4.12</version>
15             <scope>compile</scope>
16         </dependency>
17     </dependencies>
18 
19     <build>
20 
21         <plugins>
22             <plugin>
23                 <!-- Maven 編譯插件
24                 指定maven編譯的jdk版本,如果不指定,
25                 maven3默認用jdk 1.5 maven2默認用jdk1.3 -->
26                 <groupId>org.apache.maven.plugins</groupId>
27                 <artifactId>maven-compiler-plugin</artifactId>
28                 <version>3.8.1</version>
29                 <configuration>
30                     <!-- 一般而言,target與source是保持一致的,但是,有時候為了讓程序能在其他版本的jdk中運行(對於低版本目標jdk,源代碼中不能使用低版本jdk中不支持的語法),會存在target不同於source的情況 -->
31                     <source>1.8</source> <!-- 源代碼使用的JDK版本 -->
32                     <target>1.8</target> <!-- 需要生成的目標class文件的編譯版本 -->
33                     <encoding>UTF-8</encoding><!-- 字符集編碼 -->
34                     <verbose>true</verbose>
35                     <showWarnings>true</showWarnings>
36                     <fork>true</fork><!-- 要使compilerVersion標簽生效,還需要將fork設為true,用於明確表示編譯版本配置的可用 -->
37                     <executable><!-- path-to-javac --></executable><!-- 使用指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->
38                     <compilerVersion>1.3</compilerVersion><!-- 指定插件將使用的編譯器的版本 -->
39                     <meminitial>128m</meminitial><!-- 編譯器使用的初始內存 -->
40                     <maxmem>512m</maxmem><!-- 編譯器使用的最大內存 -->
41 <!--                    <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument>&lt;!&ndash; 這個選項用來傳遞編譯器自身不包含但是卻支持的參數選項 &ndash;&gt;-->
42                 </configuration>
43             </plugin>
44 
45             <!-- 生成javadoc文檔包的插件 -->
46             <plugin>
47                 <groupId>org.apache.maven.plugins</groupId>
48                 <artifactId>maven-javadoc-plugin</artifactId>
49                 <version>3.2.0</version>
50                 <executions>
51                     <execution>
52                         <id>attach-javadocs</id>
53                         <goals>
54                             <goal>jar</goal>
55                         </goals>
56                     </execution>
57                 </executions>
58             </plugin>
59 
60             <!-- 生成sources源碼包的插件 -->
61             <plugin>
62                 <groupId>org.apache.maven.plugins</groupId>
63                 <artifactId>maven-source-plugin</artifactId>
64                 <version>3.2.1</version>
65                 <configuration>
66                     <attach>true</attach>
67                 </configuration>
68                 <executions>
69                     <execution>
70                         <!-- 在package階段之后會執行源代碼打包 -->
71                         <phase>package</phase>
72                         <goals>
73                             <goal>jar-no-fork</goal>
74                         </goals>
75                     </execution>
76                 </executions>
77             </plugin>
78         </plugins>
79     </build>
80 
81 </project>

 

  • 配置好插件后,使用maven package命令既能在target目錄中查看到三個jar包

  命令:mvn package

  • 如果要把三種jar包安裝到本地倉庫

  命令:mvn install

  • 如果要把三種jar包發布到遠程倉庫

  命令:mvn deploy

 


免責聲明!

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



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