zoukankan      html  css  js  c++  java
  • 关于Java项目打包

    可以选择以下几种办法:

    一、使用Eclipse,右键项目导出jar。

    二、使用Eclipse,右键项目导出runnable jar。

    三、使用Eclipse 插件fat jar,导出可执行的jar包。

    现在有这样一个开发场景:

    第一个项目:A1

    第二个项目:B2

    第三个项目:U3

    几个条件和关系:

    1 U3引用了第三方库log4j.jar和common-io.jar。
    2 B2引用了项目U3。
    3 A1引用了项目B2。

    我想实现这样一个操作:

    1 U3和第三方库打包成一个jar包【u3.jar】。
    2 u3.jar导入项目B2,打包成一个新的jar包【b2.jar】。
    3 b2.jar导入项目A1,供A1使用。

    目的很简单:

    导入一个b2.jar即可,而不用导入各种第三方库。

    尝试了各种打包方法都失败了。

    看起来u3.jar里包含log4j.jar和common-io.jar,然后项目A1提示找不到相关类!

    又是几个小时过去了,有点儿沮丧不是吗?

    然而这只是一个思路可行性的问题。

    看起来jar包都有,但是从A1里加载class的时候是找不到的,因为路径不对。

    转念过来讲,以项目依赖的提示单独导入第三方库其实更科学。

    来看这样一种情况:

    1 新项目u4也使用了第三方库log4j-1.0.jar。
    2 U4和第三方库打包成一个jar包【u4.jar】。
    3 u3.jar和u4.jar中的第三方库都能生效。
    4 项目A1同时导入了u3.jar和u4.jar,看起来,冲突的场景出现了呢。

    就算log4j.jar的版本是一致的,加载了多个相同的jar包,也不是很优雅的吧。

    所以,将项目打包成被引用jar包,只打自己写的类,将第三方jar包以依赖的方式提供更科学。

  • 相关阅读:
    漫谈C语言结构体
    如何理解c和c++的复杂类型声明
    STM32 时钟系统
    STM32 系统架构
    运放参数的详细解释和分析-part1,输入偏置电流和输入失调电流【转】
    ROM、RAM、DRAM、SRAM、FLASH的区别?
    FATFS模块应用笔记
    关于I2C和SPI总线协议【转】
    USB编程概念
    Ubuntu手机识别
  • 原文地址:https://www.cnblogs.com/yoyotl/p/5954456.html
Copyright © 2011-2022 走看看