문제

이 질문은 Eclipse 개발에 관한 것입니다. Eclipse에서 웹 응용 프로그램을 만들려고 노력하고 있습니다. 문제는 배포 된 아카이브에 종속성 항아리를 얻지 못한다는 것입니다.

새로운 동적 웹 프로젝트를 만들어 다른 Java 프로젝트에 연결했습니다. Java Project는 몇 개의 타사 항아리 (예 : Spring Jars)를 참조하지만 웹 프로젝트를 게시 할 때는 Java Project Dependencies (EGSPRING)없이 전쟁의 Lib Dir에서 Java Project Jar 만 얻습니다.

다시 말해, 프로젝트 B (Java Project)에 따라 프로젝트 A (웹 프로젝트)가 있고 프로젝트 B는 스프링 병에 따라 다릅니다. 웹 프로젝트를 Jboss와의 전쟁으로 게시 할 때만 프로젝트 B가 항아리에 포장되어 있습니다 (스프링 jars 없음)

나는 개미와 함께 할 수 있다는 것을 알고 있습니다. build.xml 전체 앱을 구축하려면 Eclipse가 포장 작업을 수행 할 수 있다고 생각했습니다.

웹 프로젝트의 Java EE 모듈 종속성에 Java 프로젝트를 추가했습니다.

Java Project 빌드 경로 속성에서 내보내기 옵션을 사용해야합니까? Java 프로젝트의 종속성을 웹 프로젝트에 추가해야합니까?

내가 뭘 잘못하고 있죠?

편집하다: Eclipse 3.5.1을 사용하고 있습니다

도움이 되었습니까?

해결책

  1. 웹 프로젝트 속성으로 이동하십시오.
  2. 배포 어셈블리 (왼쪽).
  3. 선택> 프로젝트 선택> LIB 프로젝트 선택> 확인 "확인되지 않은 경우 웹 응용 프로그램의 웹 -INF/LIB 폴더에 프로젝트 조립"을 선택하십시오.
  4. Java 빌드 경로 (왼쪽)> 프로젝트 탭> 추가 ...> LIB 프로젝트 선택> OK
  5. Java 빌드 경로 (왼쪽)> 주문 및 내보내기 탭> LIB 프로젝트를 선택하십시오.
  6. 구하다
  7. 이제 작동합니다.

다른 팁

마지막 게시물 이후 4 년이 지났고 아마도이 옵션을 사용할 수 없었을 수도 있지만 다음은 저에게 효과가있었습니다.

  1. 웹 프로젝트-> 속성으로 이동하십시오
  2. 배포 어셈블리
  3. '추가'버튼을 사용하여 프로젝트 종속성을 추가하십시오.
  4. 귀하가 의존하는 프로젝트의 프로젝트-> 속성으로 이동하십시오.
  5. Deployment Assembly
  6. '추가'버튼을 사용하여 프로젝트의 런타임 라이브러리 종속성을 추가하십시오.
  7. Web Project-> RUN AS ..-> 서버에서 실행하면 나를 위해 작동했습니다.

4-6 단계는 Eclipse를 사용하여 JAR 파일을 작성하는 경우 해당 JAR에 종속 라이브러리를 포함한다는 것을 의미합니다.

3 단계에 도달하도록 도와 준 Rodgarcialima에게 감사드립니다.

웹 프로젝트의 Java EE 모듈 종속성에 Java 프로젝트를 추가했습니다.

목적이 다른 The의 런타임 클래스 경로로 프로젝트 현재의 프로젝트, 그런 식으로 만 작동하지 않습니다. 구성해야합니다 다른 프로젝트 내보내다 그 종속성. 빌드 경로 속성에서 주문 및 내보내기 탭으로 수행됩니다. 도움이 되었기를 바랍니다.

또한 Eclipse WTP 에보 고 된이 버그를 기록한 경우, 때때로 모든 것을 올바르게 구성하더라도 종속성이 Web-Inf/Lib에 배치되는 것을 방지합니다. 한숨을 쉬다.

버그 312897- 배포 기능은 클래스 경로 종속성을 배포하지 않습니다.

내가 이해할 수 있듯이 Eclipse에서 컴파일 타임에 항아리를 사용하고 AppServer에서 런타임에도 사용할 수 있는지 확인하십시오.

  • 건물 경로에 항아리를 추가하십시오
  • JAR을 내보내기 EE 모듈 종속성으로 표시하십시오

사용중인 다른 프로젝트에서 필요한 JAR이 필요한 경우 개인적으로 빌드 경로에서 명시 적 종속성으로 나열하고 내보내기 모듈 종속성에 추가합니다.

그러나 이클립스 프로젝트에서 noclassdeffound 오류가 발생하는 이유를 검색하는 동안이 게시물을 우연히 발견하면서 액면가로 내 답변을받지 마십시오 ...;)

배포하기 전에 웹 앱을 전쟁 파일로 포장해야합니다. Web-INF/LIB 디렉토리에 넣기를 원하는 JAR 파일을 Eclipse에 알리는 방법이 있어야합니다. 그렇지 않다면, 당신을 위해 그것을하는 ant build.xml을 작성하십시오.

환경이나 앱 서버에서 클래스 경로 변수를 수정할 필요가 없습니다. 올바른 방법은 적절한 전쟁 파일을 만드는 것입니다.

업데이트 : 귀하의 질문을 다시 읽습니다.

그러나 웹 프로젝트를 게시 할 때 몇 가지 이유로 의존성 JAR (EGSPRING)없이 JBOSS의 lib dir에서 Java 프로젝트 Jar 만 얻습니다.

이것은 무엇을 의미 하는가? Jboss /lib dir에 아무것도 넣어서는 안됩니다. 전쟁 파일의 요점은 모든 의존성을 따라 자체 포함하는 인공물이라는 것입니다. JBoss /LIB 디렉토리에 물건을 쓰려고한다면 잘못하고 있습니다.

전쟁 파일은 설정 한 도메인으로 이동해야합니다. 앱 서버를 변경할 필요가 없습니다.

내가 당신을 올바르게 이해한다면 문제는 프로젝트 A를 사용하면 프로젝트 B에 의존하는 경우 프로젝트 B에서 아티팩트를 얻지 못하고 A.

문제는 프로젝트가 속성에 필요한 모든 것을 나열해야한다는 것입니다.> Java EE 모듈 종속성은 일반적인 프로젝트 수출과 별도의 메커니즘입니다. 아마도 실험을해야 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top