2017-09-06 70 views
0

我有一个Eclipse项目,其中包含我在其他项目中使用的类和接口。这个代码库多年来一直在增长。我遇到的问题是,当我将项目导出到可运行的JAR时,Eclipse将从我的代码库中复制每个类文件,即使我只从中导入一个简单的类。在Eclipse中只导入类导出可运行的JAR

示例:我的代码库由类文件codebase/Car.class,codebase/House.classcodebase/Garage.class组成。在一个单独的项目,我有源文件project/App.java,看起来像这样:

import codebase.Car; 
import codebase.House; 

public class App 
{ 
    public static void main(String[] args) 
    { 
     Car car = new Car(); 
     House house = new House(); 
    } 
} 

是否有可能我的项目出口只有project/App.classcodebase/Car.classcodebase/House.class(但不与codebase/Garage.class,因为它没有使用),或我必须编写一个自定义构建脚本吗?

+1

据我所知它不适用于eclipse,它是jar打包系统,它没有依赖性检查,甚至使用maven只提供一个包级别依赖。 –

+1

这是设计。这是为了获得与Eclipse内部相同的环境。 –

回答

1

如果您的主项目是使用maven构建的,则可以使用Apache maven-shade-plugin,特别是使用最小化功能来完成这项工作。我现在使用它多年,它一直做得很好。它将构建一个包含所有真正使用的类的大型jar包,它不仅会从您自己的jar中驱逐类,还会从已部署的标准库中驱逐类。

相关问题