2012-07-19 3 views
2

Maven을 사용하는 프로젝트에서 maven-replacer-plugin을 사용하여 축소 된 버전의 모든 css/javascript 파일을 대체합니다.Maven replacer plugin, regex no working

나는이를 교체하려면이와

<!-- JSMIN js/script.min.js --> 
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
    <script src="js/jquery.placeholder.min.js"></script> 
    <script src="js/smoothscroll.js" async=""></script> 
    <script src="js/javascript.js"></script> 
    <script src="js/swfobject.js"></script> 
    <script src="js/player.js"></script> 
<!-- END JSMIN --> 

: CSS의의에 대한

<script src="js/script.js"></script> 

유사합니다.

플러그인은 올바른 4 개의 HTML 파일에 정규식을 적용했지만 그 파일에는 아무런 변화가 없다고합니다. 여기

어떤 도움 ... 플러그인

<plugin> 
    <groupId>com.google.code.maven-replacer-plugin</groupId> 
    <artifactId>maven-replacer-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>replace</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <basedir>${project.basedir}/src/main/webapp/</basedir> 
     <outputDir>test</outputDir> 
     <includes> 
      <include>**/*.html</include> 
     </includes> 
     <regexFlags> 
      <regexFlag>CASE_INSENSITIVE</regexFlag> 
      <regexFlag>MULTILINE</regexFlag> 
      <regexFlag>DOTALL</regexFlag> 
     </regexFlags> 
     <replacements> 
      <replacement> 
       <token>&lt;!-- JSMIN (.*) --&gt;(.*?(\r))+.*?&lt;!-- END JSMIN --&gt;</token> 
       <value>&lt;script src="$1"&gt;&lt;/script&gt;</value> 
      </replacement> 
      <replacement> 
       <token>&lt;!-- CSSMIN (.*) --&gt;(.*?(\r))+.*?&lt;!-- END CSSMIN --&gt;</token> 
       <value>&lt;link href="$1" rel="stylesheet" type="text/css"/&gt;</value> 
      </replacement> 
     </replacements> 
    </configuration> 
</plugin> 

의 구성은 정규식이 나와 내 동료에게 올바른 것입니까? 미리 감사드립니다.

+0

그 목적으로 yui-compressor 플러그인을 사용하지 않은 특별한 이유 (http://alchim.sourceforge.net/yuicompressor-maven-plugin/index.html)? – khmarbaise

+0

축소 부분에 다른 플러그인을 사용합니다. 그러나 우리는 replacer를 사용하여 패키지를 생성하는 패키징 단계에서 2 개의 코드 버전, 모든 링크가있는 원본 HTML 및 축소 된 파일이있는 배포 버전이 필요합니다. 더 작은 tar.gz 원래의 코드를 그대로 유지하십시오. –

답변

6

http://code.google.com/p/maven-replacer-plugin/wiki/UsageWithOtherPlugins

에 있습니다. 둘 다 동일한 단계 (예 : 준비 패키지)에서 실행되는 경우 maven-replacer-plugin 앞에 추가해야합니다. 일반적으로 사용되는 2.1.0+ 자원을 두 번 복사하여 교체를 대체하므로 WAR 플러그인의 버전 2.0.1 이하를 사용해야합니다. 패키지를 만들기 전에 파일을 수정하려면 다음 war 플러그인 구성을 사용하십시오.

0

테스트 용 코드에 코드를 붙여 넣었습니다. 정상적으로 작동합니다.

올바른 파일을 확인 하시겠습니까? 업데이트 된 파일은 /의 SRC/메인/웹 애플리케이션/테스트가 전쟁으로 포장하기 전에 파일에 대한 교체를 실행하기위한 후킹 지점이있을 필요가

M.

+0

우리는 문제를 해결할 수 있었지만 나중에 자동 응답 할 수 없기 때문에 나중에 해결책을 게시 할 것입니다. 근본적으로 우리는 html의 한 줄에 모든 js/css를 선언하고 정규식을 . ]]> 어쩌면 문제는 우리가 리눅스, 윈도우, 맥에서 개발 한 이후였습니다. 어쨌든 도움을 주셔서 감사합니다. –