2012-03-31 2 views
2

Eclipse Indigo를 M2E와 함께 사용하여 WTP를 사용하여 로컬 웹 응용 프로그램을 배포하고 있습니다. 나는 또한 yui-compressor 플러그인을 사용하고 있는데,이 플러그인은 target 아래에서 전개 된 war 디렉토리에서 잘 작동하는 것처럼 보이지만 Eclipse WTP에서는 작동하지 않는다. 로컬로 개발하고 축소 된 파일을 사용할 수 있도록이 설정을 권장하는 방법이 있습니까?yui 압축기 메이븐 플러그인을 WTP와 함께 사용할 수 있습니까?

<plugin> 
      <groupId>net.alchim31.maven</groupId> 
      <artifactId>yuicompressor-maven-plugin</artifactId> 
      <version>1.3.0</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compress</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <nosuffix>true</nosuffix> 
       <force>true</force> 
       <jswarn>false</jswarn> 
       <linebreakpos>-1</linebreakpos> 
       <excludes> 
        <exclude>**/lib/*</exclude> 
       </excludes> 
       <aggregations> 
        <aggregation> 
         <insertNewLine>true</insertNewLine> 
         <output>${project.build.directory}/${project.build.finalName}/static/js/script-${timestamp}.min.js</output> 
         <includes> 
          <include>**/script/*.js</include> 
         </includes> 
         <excludes> 
          <exclude>**/lib/*</exclude> 
         </excludes> 
        </aggregation> 
       </aggregations> 
      </configuration> 
     </plugin> 

<pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>net.alchim31.maven</groupId> 
            <artifactId>yuicompressor-maven-plugin</artifactId> 
            <versionRange>[1.2,)</versionRange> 
            <goals> 
             <goal>compress</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute /> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 

답변

0

문제는, 내 생각, 당신은 생성 된 리소스를 찾을 수 maven-war-plugin에 이야기하지 않는 것입니다 :

여기 내 유이의 설정입니다.

maven-war-plugin 구성에 webResources 섹션을 추가해야합니다 (예 :

<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> 
+0

감사합니다.이 작업을 수행 한 후에 리소스가 웹 리소스 폴더에 저장되고 축소되었음을 알 수 있습니다. 그러나 나는이 일을 점진적으로 할 수는 없다. 비록 yui 플러그인이 어떤 리소스가 저장된 후에 실행할 수 있지만, 빌드를 다시하지 않으면 변경 사항이 웹 리소스 폴더에 푸시되지 않는다. WTP와 함께 사용할 수있는 방법이 있습니까? – user842800

0

당신이 <runOnIncremental>true</runOnIncremental>을 시도해 봤어 :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <webResources> 
     <resource> 
      <filtering>true</filtering> 
      <directory>${basedir}/src/main/webapp</directory> 
      <excludes> 
      <exclude>**/pattern-for-non-minified-scripts</exclude> 
      </excludes> 
     </resource> 
     <resource> 
      <filtering>true</filtering> 
      <directory>${project.build.directory}/${project.build.finalName}</directory> 
      <includes> 
      <include>static/js/script-${timestamp}.min.js</include> 
      </includes> 
     </resource> 
     </webResources> 
    </configuration> 
    </plugin> 

.settings/org.eclipse.wst.common.component 파일을 확인, WTP가 축소 된 파일을 집어 것을 볼하려면 다음 줄을 가지고?

<plugins> 
    <plugin> 
     <groupId>net.alchim31.maven</groupId> 
     <artifactId>yuicompressor-maven-plugin</artifactId> 
     <version>1.3.0</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>compress</goal> 
       </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <sourceDirectory>${project.basedir}/src/main/webapp/resources/js</sourceDirectory> 
      <outputDirectory>${project.basedir}/src/main/webapp/resources/js-min</outputDirectory> 
     </configuration> 
    </plugin> 
</plugins> 

내 HTML에서 나는 다음 [...]/resources/js-min/에서 자바 스크립트 파일을 참조 :

<pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.eclipse.m2e</groupId> 
      <artifactId>lifecycle-mapping</artifactId> 
      <version>1.0.0</version> 
      <configuration> 
       <lifecycleMappingMetadata> 
        <pluginExecutions> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId>net.alchim31.maven</groupId> 
           <artifactId>yuicompressor-maven-plugin</artifactId> 
           <versionRange>[1.3.0,)</versionRange> 
           <goals> 
            <goal>compress</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <execute> 
            <runOnIncremental>true</runOnIncremental> 
           </execute> 
          </action> 
         </pluginExecution> 
        </pluginExecutions> 
       </lifecycleMappingMetadata> 
      </configuration> 
     </plugin> 
    </plugins> 
</pluginManagement> 

이 M2E 출력에게 /src/ 디렉토리가 아닌 /target/ 디렉토리에 파일을 사용하려면, 나는 다음과 같은 사용합니다.