• 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>

  • 相关阅读:
    MySQL 3 环境搭建 MySQL 5.7版本的安装、配置
    关于大模型训练微调的几个概念
    正点原子嵌入式linux驱动开发——新字符设备驱动实验
    数据分析和互联网医院小程序:提高医疗决策的准确性和效率
    爆肝整理,最全单元测试-测试用例总结(全覆盖)及拿即用...
    OpenAI超级对齐负责人:“驾驭”超级智能的四年计划
    VM虚拟机运行的Ubuntu连入同一局域网,并实现双机方法
    基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)
    Demo27
    c++中的常用知识点总结
  • 原文地址:https://blog.csdn.net/u014644574/article/details/127034548