一、普及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><!– 這個選項用來傳遞編譯器自身不包含但是卻支持的參數選項 –>--> 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
