一、普及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