2017-09-06 39 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中驅逐類,還會從已部署的標準庫中驅逐類。

相關問題