2012-10-22 6 views
0

라이브러리 (jar 파일)에 의존하는 작은 프레임 워크를 개발 중입니다. 필자는 최종 프레임 워크 jar 파일에 해당 종속성을 포함 시켰습니다. 그러나이 프레임 워크 jar (다른 라이브러리 포함)를 포함 할 때 프레임 워크의 클래스를 사용할 수 있지만 프레임 워크 jar에 포함 된 종속성 라이브러리의 클래스를 사용할 수 없습니다.항아리에 포함 된 항아리 사용

어떻게 해결할 수 있습니까? 제 프레임 워크에 제 3 자 라이브러리를 포함시키는 것이 좋습니다 (GPL 라이센스하에 있더라도). 나는 프레임 워크 사용자 (개발자)가해야하는 작업을 줄이기를 원한다.

+1

* "제 3 자 라이브러리를 포함 시키십시오."* * ".. 앱. 런타임 클래스 경로"이외의 것이 있으면 * 대답은 거의 확실합니다. . Jars를 다른 Jar 내부로로드하기 위해 농구를 뛰어 넘을 수도 있지만 앱을 배포하는 것이 훨씬 의미가 있습니다. 자바 애플리케이션을위한 방식으로 어떤 유형의 앱입니까? 그렇지? (E.G. Web-app., 데스크탑 응용 프로그램, 콘솔 응용 프로그램 ..). –

+1

이렇게하면 jar 파일이 서로 중첩되지 않기 때문에 개발자의 삶을 훨씬 어렵게 만들 수 있습니다. Google for * java jar 안내서 *. –

+0

가끔은 고객이 단지 1 병을 원하지만 g10, g4j와 같은 3 차원 파티 단지가 있고 개인 5-10 단지가 있습니다. 'ant '를 사용하면 모든 항아리를 열고 모든 패키지 (많은 패키지)로 새 항아리를 가져올 수 있습니다. 하지만 고객에게 javaDoc을 제공 한 이후로는 새로운 항아리가 어떻게 복잡해지는 지 알 수 없습니다. –

답변

1

어떻게 해결할 수 있습니까? 당신이 OneJar에 의해 제공 등 특별한 클래스 로더를 사용하는 경우

중첩 JAR 파일은 가능하지만, 그것은 오히려 긴 시작 시간을 리드 물론 다른 의존성 및 합병증을 추가합니다.

JAR 파일에서 여러 가지 종속성을 갖는 클래스 경로를 관리하는 것은 모든 Java 개발자에게 익숙한 것입니다. 나는 그것을 피하려고 노력할 때 아무런 가치가 없다.

내 프레임 워크에 제 3 자 라이브러리를 포함하는 것이 좋습니다 (GPL 라이센스하에 있더라도).

다릅니다. 귀하의 프레임 워크가 GPL이 아닌 경우, 귀하는 라이센스에 위배되며 고소 될 수 있습니다. 실제로 GPL 병을 실제로 포함하든 안하든 상관 없습니다.

+0

좋아, 나는 이것이 나쁜 습관 일 수 있다는 것을 알았다. 그래서 나는이 의존성을 프레임 워크의 문서화에 포함시켰다. –