使Project JAR文件保持最新

时间:2013-05-19 23:50:41

标签: java jar

在单个项目中使用多个API时,除了项目已使用的其他所需库(如Apache Commons,日志记录等)之外,每个API所需的JAR文件也会添加到项目中。这有时会导致大量的jar文件。

当不再使用某个API或库时,最好删除与之关联的JAR文件。但是,存在另一个API或库需要它的风险。在项目建设期间,这并不总是很明显。有时,缺少的JAR仅在运行时抛出错误。

我有以下问题:

  1. 处理此问题的最佳方法是什么?换句话说,能够在不运行运行时错误风险的情况下删除JAR吗?
  2. 我被告知Maven解决了这个问题。可以?如果使用的外部API不是基于Maven的,它会起作用吗?我是否能够在不担心运行时错误的情况下删除JAR?我是否需要将整个项目重写为基于Maven?
  3. 非JVM平台如何处理共享库的问题并将其删除? Java是否缺乏这个领域,或者它是所有平台的常见问题?

2 个答案:

答案 0 :(得分:1)

是的,我同意Maven可以在这种情况下帮助你。基本上在Maven编译&每个工件(jar / war / ear / etc)的运行时依赖项都在pom.xml文件中声明。如果多个依赖项依赖于相同的工件,则使用最新版本 - 例如:

A-1.0.jar -- depends on --> C-2.0.jar
B-1.0.jar -- depends on --> C-2.1.jar

您的项目中只包含C-2.1.jar。

如果找不到/取出所需的依赖项,Maven构建将自动失败。因此,为了避免缺少运行时依赖性,您可以在运行时范围内声明特定工件的依赖关系 - 当您不再需要它时,您只需将其取出

答案 1 :(得分:0)

多年前我曾经在UNIX上使用过一个老技巧,它可能仍然适合你。首先使用UNIX“touch”将所有文件的日期/时间设置为当前日期/时间。然后等待至少一分钟。然后运行您的应用程序然后运行UNIX“ls -lut”列出所有文件,但是这次未使用的文件将在第一步中设置日期/时间,而那些使用的日期/时间将具有更新的日期/时间,因为“u”切换报告上次使用的日期/时间。