2017-09-06 1 views
0

다른 프로젝트에서 사용하는 클래스 및 인터페이스를 포함하는 Eclipse 프로젝트가 있습니다. 이 코드베이스는 수년에 걸쳐 상당히 커졌습니다. 내가 가지고있는 문제는 프로젝트를 실행 가능한 JAR로 내보낼 때 Eclipse에서 하나의 간단한 클래스 만 가져 오더라도 이클립스가 내 코드베이스의 모든 클래스 파일을 복사한다는 것입니다.가져온 클래스 만 Eclipse에서 실행 가능한 JAR 내보내기

예 : 내 코드베이스는 codebase/Car.class, codebase/House.classcodebase/Garage.class 클래스 파일로 구성됩니다.

import codebase.Car; 
import codebase.House; 

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

이 가능 (사용하지 않을 이후,하지만 codebase/Garage.class 포함) 만 project/App.class, codebase/Car.classcodebase/House.class 내 프로젝트를 내보내거나하는 것입니다 : 별도의 프로젝트에서,이처럼 보이는, 소스 파일 project/App.java이 사용자 정의 빌드 스크립트를 작성해야합니까?

+1

이클립스에서 작동하지 않는다는 것을 알고있는 한 항아리 패키징 시스템이며 종속성 검사가 없으며 maven을 사용하더라도 패키지 수준의 종속성 만 제공합니다. –

+1

이것은 의도적으로 설계된 것입니다. 이것은 Eclipse 내부와 동일한 환경을 얻는 것입니다. –

답변

1

기본 프로젝트가 maven으로 빌드 된 경우 Apache maven-shade-plugin 및 특히 최소화 기능을 사용하여 작업을 수행 할 수 있습니다. 나는 수년간 그것을 사용하고 있으며, 항상 좋은 직장을 가졌습니다. 그것은 정말로 사용되는 모든 클래스를 포함하는 하나의 큰 항아리를 만들 것이며 당신의 항아리로부터 배포 된 클래스뿐만 아니라 배포 된 표준 라이브러리로부터 클래스를 제거 할 것입니다.