2013-10-07 2 views
0

현재 웹 응용 프로그램에 사용되는 타사 라이브러리 목록을 컴파일 중입니다. 응용 프로그램은 tomcat에 배포됩니다. 제 3 자 항아리 중 어떤 것이 실제로 배포에 포함되거나 포함되어야하는지 궁금합니다. 특히, 현재 javax-libraries를 가장 효과적으로 사용하는 방법에 대해 궁금합니다. 예를 들어, javax.annotation-3.1.1.jar은 일부 표준화 된 방법으로 사용할 수 있다고 가정합니다. 예를 들어, 내 확장 프로그램으로 다운로드하는 경우, 내 소프트웨어 배포판에 포함시키지 않아도됩니다. 그러나 웹 서비스에 필요한 jaxws-api의 전이 종속성에 포함되어 있으므로 응용 프로그램의 lib 디렉토리에 포함되어 있습니다. Extension-List 매니페스트 항목을 사용하여 대상 컴퓨터에서 이러한 jar를 다운로드하고 설치할 수 있음을 알고 있습니다. 그러나 동일한 시스템의 다른 응용 프로그램에서도 볼 수 있으며 동일한 라이브러리의 다른 버전이 필요할 수도 있습니다.jar의 재배포

그래서, 제 3 자 libs가에 대한 몇 가지 질문을 가지고 누군가가 나에게 약간의 힌트를 줄 수 있다면 매우 기쁠 :

타사 라이브러리를 사용하는 가장 좋은 방법은 무엇입니까?

javax-libraries에 대한 유용한 정보가 있습니까?

응용 프로그램을 설치하는 사람에게 큰 부담을주지 않고 재배포하지 않아도됩니까?

답변

0

여기서 "재배포"의 개념을 이해하지 못했을 것입니다. 아마도 구체적인 응용 프로그램 서버 용어를 사용하고있는 것이므로 여기에 일반적인 대답을 제공하려고합니다. .

WAR (Web Archive의 약자)는 응용 프로그램에서 사용하는 모든 제 3자를 포함해야합니다. 이들은 WEB-INF/lib 폴더에 있습니다.

이제 각 Java EE 서버는 관련 인터페이스를 포함하고 있기 때문에 javax 라이브러리를 "이해해야"합니다. "javax"라이브러리는 일반적으로 인터페이스를 제공하며 이러한 인터페이스와 함께 작동하는 구현/코드는 응용 프로그램 서버 개발자가 제공합니다.

예를 들어 서블릿 기술의 경우 Tomcat (또는 임의의 웹 서버 이름)은 내부 라이브러리 내에 HttpServlet 추상 클래스를 포함 할 것이고, 그것은 전쟁을 스캔하고 구현/확장하는 곳을 찾을 것입니다. 이것이 서블릿을 인식하는 방법입니다 사실은.

이제는 servlet-api jar가 응용 프로그램 서버에 이미 있기 때문에 war에 servlet-api jar를 포함하면 안됩니다.

maven과 같은 빌드 도구를 사용하는 경우 일부 타사가 컴파일에 사용되지만 전쟁으로 포장되지 않도록 전쟁을 구축 할 수 있습니다.

가장 쉬운 경우에 응용 프로그램을 설치하는 것이 왜 어려운지 이해하지 못했지만 웹 서버에 전쟁을 던졌습니다.

희망이 있습니다.

+0

저는 실제로 Maven을 사용하고 있으며 "제공된"범위의 servlet-api를 포함하고 있습니다. 또한 Tomcat의 lib 폴더에 api.jar이라는 주석을 몇 가지 다른 항아리와 함께 찾을 수 있습니다. 그러나 이것은 모든 javax 라이브러리를 포함하지 않습니다. 예를 들어, jaxws-api는 해당 폴더에 포함되어 있지 않습니다. 설치, btw, 아무 문제 없습니다. 나는 포장해야 할 항아리와 라이센스상의 이유로 존재할 것으로 가정 할 수있는 항아리만을 고려하고 있습니다. – avidD