• 【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
    t.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

  • 相关阅读:
    java集合源码
    数据库表链接的几种方式
    面试题(RabbitMQ)
    常见面试题(Redis)
    某奥笔试题
    Servlet
    1——Django的基础及环境搭建
    6.13---example
    6.12---知道参数的重要性------插入数据-删除数据-修改数据注意Map
    6.12---前提两个对象的成员必须一致,才能将有数据的对象将数据传给反射获取的对象conver(有数据对象,目标对象)
  • 原文地址:https://www.cnblogs.com/h--d/p/14741366.html
Copyright © 2020-2023  润新知