java - 在 Eclipse 中导出可运行的 JAR,仅包含导入的类

标签 java eclipse jar

我有一个 Eclipse 项目,其中包含我在其他项目中使用的类和接口(interface)。这些年来,这个代码库已经变得相当庞大。我遇到的问题是,当我将项目导出到可运行的 JAR 时,Eclipse 将从我的代码库中复制每个类文件,即使我只从中导入一个简单的类。

示例:我的代码库由类文件 codebase/Car.classcodebase/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,因为它没有被使用),或者我是否必须编写自定义构建脚本?

最佳答案

如果你的主项目是用maven构建的,你可以使用Apache maven-shade-plugin尤其是最小化功能来完成这项工作。我已经使用它很多年了,而且它总是表现得很好。它将构建一个包含所有真正使用的类的大 jar,它不仅会从您自己的 jar 中逐出类,还会从部署的标准库中逐出类。

关于java - 在 Eclipse 中导出可运行的 JAR,仅包含导入的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080622/

相关文章:

android - Eclipse Android 项目中的哪些文件夹需要在 SVN 中备份?

eclipse - Eclipse 中的 Tomcat - 从启用 JPDA 开始

java - 在测试和生产代码中获取一致的资源文件夹路径

java - Android:打开视频选择器并按长度过滤看到的视频

java - 使用 XPath 从 XML 中获取 Java 中的属性值

Java PathMatcher 在 Windows 上无法正常工作

java - Apache Commons Email 安装在 Eclipse : cannot be resolved

java - 在 jar 内使用 jar 时 Eclipse 生成的自定义类加载器在哪里?

shell - maven zip uber-jar 和 shell 脚本

Java Standalone 可运行的 GUI 应用程序 - 无法获取 jar 文件来打开程序