자바 이클립스 프로젝트 하위 집합 생성 1개 소스 파일의 종속성을 기반으로

때때로 고객에게 제공되는 기능이 포함된 라이브러리 이클립스 프로젝트/작업 공간이 있습니다. 우리 모두는 연구원이기 때문에 매우 비공식적으로 수행됩니다. 문서와 함께 JAR과 Word 파일을 만들어서 그들에게 보냅니다.저는 일을 단순화하기 위해 실제로 필요한 것만 포함한 JAR 파일을 보내는 것을 좋아합니다. X, Y, Z 및 W 클래스가 필요한 경우 X, Y, Z 및 W와 해당 클래스가 의존하는 모든 클래스가 포함된 JAR 파일을 발송합니다.지금 저는 절망적인 수동 방식으로 이 작업을 수행하고 있습니다(새로운 프로젝트를 만들어 X, Y, Z 및 W 위로 드래그하고 컴파일러 오류를 수정하는 데 필요한 모든 것을 드래그합니다). 이클립스에서 자동화하는 올바른 방법은 무엇입니까?편집: 밝히기 위해 관련된 이클립스 프로젝트에는 고객이 실제로 필요로 하는 것보다 더 많은 클래스가 포함되어 있습니다.편집 : 또한 반사가 포함되지 않습니다. 컴파일러는 무슨 일이 일어나고 있는지 알고 있다고 확신할 수 있습니다. 나는 코드를 작성한 사람이며 전염병처럼 반사를 피합니다. 리플렉션을 사용한 유일한 장소는 Collections.to Array( )를 모방하는 것이며, 이 경우 문제를 일으킬 수 있는 유일한 클래스는 사용자가 제공한 클래스입니다.Ant를 사용해서 이러한 것을 자동화할 수 있습니다.

내보내기 명령을 사용하면 생성된 JAR에 포함된 파일을 선택할 수 있습니다.

현재 컴파일러가 만족할 만한 충분한 클래스 파일을 복사하고 있습니다. 하지만 실행 중인 애플리케이션을 만족시키기 위해 충분한 클래스 파일을 복사하고 있다고 확신하십니까? 일부 애플리케이션은 런타임에 리플렉션을 통해 클래스를 로드합니다.이 예에서 컴파일러는 org.my.company.Foo 클래스를 복사하지 않아도 불평하지 않습니다. 하지만 실행 중인 애플리케이션은 클래스를 찾을 수 없을 때 가장 분명하게 불평할 것입니다.두 가지 상황을 모두 받아들이려면 실행 중인 응용 프로그램에서 로드되는 모든 클래스를 기록할 사용자 정의 ClassLoader를 생성할 수 있습니다.다음과 같이 어플리케이션을 실행할 수 있습니다.자바-Djava. 시스템.class.loader=RecordingClassLoader-Dloaded.classes.file=loaded_classes.txt너의 애플리케이션 loaded_classes.txt 파일은 다음과 같습니다.java.lang. 시스템 java.nio.charset.Charsetjava.lang.String…. 당신의 어플리케이션 java.패키지. 응용 프로그램을 실행한 후 작은 프로그램이 이 파일에 언급된 클래스를 자동으로 복사할 수 있습니다.

바이시클, 이클립스 플러그인이 도움이 되지만 Source forge에서 삭제되었습니다. 철저하게 자동화된 프로세스를 얻는 것이 아니라 종속성을 결정하는 것입니다. 저는 이것을 오랫동안 사용해 왔기 때문에 Ganymede/Galileo로 작동시킬 수 있을지 확실하지 않습니다.업데이트 클래스 종속성 분석 장치 도구는 수행하고자 하는 작업을 정확하게 수행하기 위해 플러그인을 생성하는 데 사용할 수 있는 플러그인 확장 API와 함께 제공되므로 더욱 유용합니다.업데이트 #2 Ant 사용법이 궁금하다면 Class FileSet 유형을 사용하여 클래스와 종속성 목록을 얻을 수 있습니다. 이는 복사 작업 내에서 참조되며 필요한 클래스 파일을 복사할 수 있습니다. 이것은 소스 파일을 복사하지 않는 것에 주의해 주세요.내부적으로 이 방법은 BCEL 라이브러리에 의존하기 때문에 소스 복사본을 수행하려는 경우 class 파일의 종속성을 검사하고 소스를 다른 디렉토리에 복사할 코드를 만들 수 있습니다.

이러한 리포터링을 지원하기 위해 이클립스 개선 요청을 제출했습니다. 지금까지 저는 분리 및 종속성 분석에 도움을 줄 수 있는 몇 가지 유망한 도구를 발견했습니다. eDepend는 다음을 포함한 종속성 뷰어 플러그인입니다.요소 종속성을 표시하는 클래스/패키지 종속성 다이어그램, 라이브러리/다른 프로젝트 및 종속성 주기와의 관계. 그러한 종속성을 일으킨 클래스 찾기를 나열할 수도 있습니다.자바용 STAN 구조 분석 엔와이어 클래스 종속성 분석 기종 속성 찾기 관련 질문: 1

error: Content is protected !!