我有一个 Eclipse 项目,其中包含我在其他项目中使用的类和接口(interface)。这些年来,这个代码库已经变得相当庞大。我遇到的问题是,当我将项目导出到可运行的 JAR 时,Eclipse 将从我的代码库中复制每个类文件,即使我只从中导入一个简单的类。
示例:我的代码库由类文件 codebase/Car.class
、codebase/House.class
和 codebase/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.class
、codebase/Car.class
和 codebase/House.class
导出我的项目(但不适用于codebase/Garage.class
,因为它没有被使用),或者我是否必须编写自定义构建脚本?
最佳答案
如果你的主项目是用maven构建的,你可以使用Apache maven-shade-plugin尤其是最小化功能来完成这项工作。我已经使用它很多年了,而且它总是表现得很好。它将构建一个包含所有真正使用的类的大 jar,它不仅会从您自己的 jar 中逐出类,还会从部署的标准库中逐出类。
关于java - 在 Eclipse 中导出可运行的 JAR,仅包含导入的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080622/