2014-12-01 5 views
2

에서 JS 받는다는 종속성을 참조하는 알 수없는 경우이 바보 같은 질문하지만 메이븐에 새로 온 나는 정말이 처리하는 방법을 알고하지 않습니다 내가 현재 일하고 있어요는 JSP

Maven 프로젝트 구조를 사용하는 webapp (struts2) 프로젝트에서 새로운 종속성을 추가했습니다 : jqgrid-4.6.0 (Jquery grid-view plugin).

종속성을 내 pom.xml에 추가했는데 js 파일을 JSP에 포함시켜야 할 때 문제가 발생합니다. 나는 (메이븐 종속성을 사용하지 않고) 그것을 옛날 방식을 수행했다면 나는 내 프로젝트에서 Project_root/src/main/webapp/js 디렉토리에 항아리 내부에 오는 모든 js 파일을 넣어 같이를 참조 할 것 :

<script src="../js/some_file_name.js" type="text/javascript"></script> 

하지만 난 아니에요 추출한 .jar 파일을 내 js 디렉토리에 저장하는 대신 종속성을 사용하여이 문제를 처리하는 방법을 잘 알고 있어야합니다.

내가 뭘 하려는지 알기를 바랍니다.

답변

6

웹 자이 스를 사용해보십시오 (어쩌면 그렇게 할 수도 있음). 그것은 당신이 당신의 Maven 프로젝트 내에서 종속물로서 모든 유형의 Javascript 라이브러리를 추가 할 수 있도록합니다. 귀하의 경우에는

당신은 당신 받는다는 pom.xml 파일에 다음 종속성을 추가 할 수 있습니다

이제
<dependency> 
    <groupId>org.webjars</groupId> 
    <artifactId>jqgrid</artifactId> 
    <version>4.6.0</version> 
</dependency> 

나는 이것이 스트럿츠 2 응용 프로그램에서 어떻게 작동하는지 모르겠지만, 일반 서블릿에서 3 호환 서버를 사용하여 파일을 참조 할 수 있습니다.

<script src="webjars/jqgrid/4.6.0/jquery.jqGrid.js" type="text/javascript"/> 

응용 프로그램 컨텍스트 경로를 상대 URL 앞에 두어야 할 수도 있습니다.

<script src="${pageContext.request.contextPath}/webjars/jqgrid/4.6.0/jquery.jqGrid.js" type="text/javascript"/> 

자세한 내용은 webjars documentation를 참조하십시오

URL은 다음 무언가 같이해야합니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 내가 찾고 있었던 것 같다. 비록 이것이 왜 내가'Maven '에 상당히 익숙하다는 것을 이해할 수있는 지식을 가지고 있지는 않지만 .. 그래서 수동으로 모든'js'를 넣을 필요가 없다. 내 webapp 디렉토리 안의 파일을 "보통"플러그인처럼 설치 하시겠습니까? 내 'pom.xml'에 대한 의존성을 포함하면 모든 작업이 가능합니까? – JorgeGRC

+0

현재 다른 jquery 플러그인 인'struts2-jquery-plugin'을'com.jgeppert.struts2.jquery' 그룹에서 테스트 중이며 JSP 내에서 참조하지 않고 작동하는 것처럼 보입니다. 단지'pom에 종속성을 추가했습니다. .xml'이고 솔직히 모든 플러그인 파일과 물건을'/ lib' 폴더 안에 넣는 것보다 편리합니다 – JorgeGRC

+0

일반적으로 webjars를 사용할 때 웹 디렉토리에 수동 JS 파일을 둘 필요가 없습니다. 나는 "보통"플러그인을 설치하는 것이 무슨 뜻인지 잘 모르겠다. 과거에 어떤 프레임 워크를 사용했는지, 그래서 당신의 관점에서 설명 할 수 있습니다. 나는 또한 struts2-jquery-plugin이 사용자 정의 JSP 태그를 사용하여 결과 HTML 파일에 같은 줄을 넣는다 고 생각한다. – Jeroen

-1

왜 의존성으로 넣으시겠습니까? js 파일이 프로젝트의 일부가 아닙니까?

일반적으로 비 Java (eq 비 jar/war/ear 등) 패키지가 프로젝트의 일부로 추가됩니다. 메이븐 (maven)을위한 jQuery와 같은 프레임 워크 패키지를 보았습니다. 그러나 이것은 일반적인 것이 아닙니다. 당신은 jQuery를위한 당신 자신의 전쟁을 만들지 만, 배포면에서 당신과는 독립된 자신의 삶과는 별개의 전쟁이 될 것이다.

+0

저는 웹 개발에 익숙하지 않고 Maven에 익숙하지 않아 웹 애플리케이션을 구축하는 데 경험이 거의 없습니다 ... 필요한 모든 외부 "물건"을 포함하는 것이 좋은 습관이라고 생각했습니다 (jquery와 javascript 플러그인)을 Maven 의존성으로 사용했지만 오해했을 수도 있습니다 ... – JorgeGRC