2013-08-03 1 views
1

내 프로젝트에 xsbt-wro4j-plugin에서 직접 수행 할 수없는 몇 가지 특별한 요구 사항이 있으므로 SBT 용 자체 wro4j 플러그인을 만드는 중입니다.스칼라의 간단한 빌드 도구 용 사용자 정의 wro4j 플러그인

xsbt-wro4j-plugin (here)의 소스 코드와 wro4j API 설명서를 확인하여 파일 작성 프로세스에 대한 통찰력을 얻었지만 조금 혼란 스럽습니다. 지금까지 플러그인이 필요한 자원을 생산하기 위해 Mockito를 사용한다고 말할 수는 있지만 wro4j와 어떻게 협력하는지 알 수 없습니다. 내가 맞다면이 Mockito 전체가 해킹되어 SBT의 캐싱 메커니즘을 사용할 수 있습니다.

질문 1은 캐싱 지원을 잃지 않고이 Mockito 부두를 피할 수 있는지 여부입니다.
질문 # 2 : wro4j에서 파일 생성을 담당하는 것은 무엇입니까? 그것을 무시할 수 있을까요?

답변

1

이것은 모든 질문에 대한 답변 일 필요는 없지만 xsbt wro4j 플러그인 (및 wro4j-maven-plugin)이 mockito를 사용하는 이유에 대한 설명이 나와 있습니다.

wro4j는 처음에는 HttpServletFilter를 사용하여 런타임 솔루션으로 만 생성되어 즉시 정적 리소스를 최소화합니다. 결과적으로 내부 API는 servlet-api (특히 HttpServletRequest & HttpServletResponse 객체)를 기반으로합니다. 나중에 빌드 타임 솔루션이 필요할 때 프레임 워크의 내부를 변경하는 대신 비 서블릿 환경 (빌드 타임)에서 servlet-api를 스텁하는 메커니즘을 사용하여 적절한 해결 방법을 적용했습니다.

장기적인 접근 방법은 wro4j, servlet-api를 무신론자로 만들고 maven plugin이나 xsbt plugin과 같은 빌드 타임 솔루션을 허용하는 것입니다.이 해결 방법을 사용하지 않아도됩니다. 불행히도이를 위해서는 wro4j의 내부를 변경해야하며 이는 주요 릴리스가 필요합니다 (이전 버전과 호환되지 않음). 이를 수행하는 데 필요한 작업량이 주어지면 대부분 지연 될 것입니다.

+0

아,이 말이 맞습니다. 하지만, wro4j에 대한 문서는 이에 대해 명확해야합니다. – Athelionas