• Maven编译打包本地jar包rt.jar


    scope标签的值的种类:

    1、compile:默认值,可省略不写。表示该依赖需要参与到项目的编译、测试以及运行周期中,打包时也要包含进去。
    2、test:该依赖仅仅参与测试相关的工作,包括测试代码的编译和执行,非测试代码部分不参与编译、运行,不会被打包,例如:junit。
    3、runtime:该依赖无需参与项目的编译,项目的测试和运行需要其参与。与compile相比,跳过了编译而已,会被打包进去。例如JDBC驱动,适用运行和测试阶段。
    4、provided:事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude(排除)操作,不会被打包。
    5、system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径。
    6、import:import只能用在dependencyManagement块中,Maven不能多继承,常用来项目既想继承A工程又想继承B工程。如微服务同时继承Spring Boot、Spring Cloud、Spring Cloud Alibaba三个父工程。

    Maven引入本地jar包

    项目中com.sun.image.codec.jpeg.JPEGCodec用到了rt.jar包,jar包是本地jar包,有2种引入方式,推荐方式一。

    方式一:

    在 插件中直接引入。

    1. <plugin>
    2. <groupId>org.apache.maven.plugins</groupId>
    3. <artifactId>maven-compiler-plugin</artifactId>
    4. <version>3.8.0</version>
    5. <configuration>
    6. <source>1.8</source>
    7. <target>1.8</target>
    8. <compilerArguments>
    9. <!--如果引用多个jar需要使用;(windows)或者:(macos)来分割,多个平台下开发会很不方便,可以使用变量path.separator代替-->
    10. <bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath>
    11. </compilerArguments>
    12. </configuration>
    13. </plugin>

    方式二

    使用system标签引入本地jar包

    1. <!--com.sun.image.codec.jpeg.JPEGCodec用到了rt.jar-->
    2. <dependency>
    3. <groupId>jdk.rt</groupId>
    4. <artifactId>jdk.rt</artifactId>
    5. <version>1.8</version>
    6. <scope>system</scope>
    7. <systemPath>${java.home}/lib/rt.jar</systemPath>
    8. <!--<systemPath>${basedir}/webapp/WEB-INF/lib/rt.jar</systemPath>-->
    9. </dependency>

    true表示它将创建(fork)一个新的JVM来运行编译器。这有点慢,但隔离效果更好。

    1. <plugin>
    2. <groupId>org.apache.maven.plugins</groupId>
    3. <artifactId>maven-compiler-plugin</artifactId>
    4. <version>3.8.0</version>
    5. <configuration>
    6. <source>1.8</source>
    7. <target>1.8</target>
    8. <compilerArgs>
    9. <arg>-XDignore.symbol.file</arg>
    10. </compilerArgs>
    11. <fork>true</fork>
    12. </configuration>
    13. </plugin>

  • 相关阅读:
    swift语言用哪种库适合做爬虫?
    基于多尺度分形残差注意力网络的超分辨率重建算法
    css调整字体间距 以及让倾斜字体
    Spring MVC统一异常处理的3种方式(附带实例)
    go语言基础操作---七
    ubuntu上ffmpeg使用framebuffer显示video
    Azkaban使用
    提高Producer的发送速度
    树莓派搭建K8S集群
    【vue】牛客专题训练02
  • 原文地址:https://blog.csdn.net/u014644574/article/details/127034548