2016-03-31 17 views
4

フロントエンドプロジェクトを縮小するために、mavenプラグインminify-maven-pluginを使用しています。minify-maven-pluginでfrontendを小さくする

はゴールcom.samaxesの実行に失敗しました:私は、フロントエンドのプロジェクトにDOSボックスの上に移動して、mvn clean installを実行するが、私は私の原子炉プロジェクトのメインポンポンでmvn clean installを実行したときに、私は次の例外を取得するとき、これは正常に動作します。 maven:minify-maven-plugin:1.7.4:プロジェクトmy.project-frontendのminify(デフォルト - minify):実行のデフォルト - 目標の最小化com.samaxes.maven:minify-maven-plugin:1.7.4:minify failed :basedir ./src/main/resources/public/app/。 exisではありません

誰でもこの作業を行うために何をすべきでしょうか?心配プラグインの設定の下

<!-- minify plugin --> 
    <plugin> 
     <groupId>com.samaxes.maven</groupId> 
     <artifactId>minify-maven-plugin</artifactId> 
     <version>1.7.4</version> 
     <executions> 
      <execution> 
      <id>default-minify</id> 
      <phase>prepare-package</phase><!-- When omitted defaults to 'process-resources' --> 
      <configuration> 
       <charset>UTF-8</charset> 
       <skipMerge>true</skipMerge> 
       <nosuffix>true</nosuffix> 
       <closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel> 
       <webappSourceDir>src/main/resources/public/app</webappSourceDir> 
       <webappTargetDir>${project.build.outputDirectory}/public/app</webappTargetDir> 

       <cssSourceDir>./</cssSourceDir> 
       <cssSourceIncludes> 
       <cssSourceInclude>**/*.css</cssSourceInclude> 
       </cssSourceIncludes> 

       <jsSourceDir>./</jsSourceDir> 
       <jsSourceIncludes> 
       <jsSourceInclude>**/*.js</jsSourceInclude> 
       </jsSourceIncludes> 

       <jsEngine>CLOSURE</jsEngine> 
      </configuration> 
      <goals> 
       <goal>minify</goal> 
      </goals> 
      </execution> 
     </executions> 
    </plugin> 
<!-- minify plugin end --> 
+0

* BASEDIRの./src/main/resources/public/app/。存在しない*。それは明らかでない?フォルダは存在しますか? – Tunaki

+0

はい、存在します。そうでないと、プロジェクトでmvn clean installを実行したときにプロジェクトをビルドできませんでした。問題は、原子炉プロジェクトに関する経路でなければならない。 – quma

答えて

6

私はあなたの問題を再現することができたと

<webappSourceDir>${project.basedir}/src/main/resources/public/app</webappSourceDir> 

<webappSourceDir>src/main/resources/public/app</webappSourceDir> 

以下の設定項目を変更することにより、それを修正つまり、標準を追加する接頭辞としてのプロパティ。

これで、ビルドはモジュール自体から成功しましたが、親のビルド(リアクタ/アグリゲータビルド)からも成功しました。

このプレフィックスのおかげで、原子炉建屋は、ビルド時に現在のベースディレクトリ(該当するモジュールの1つ)を指し示しているパスを適切に解決します。公式Maven Builder model documentation

{project.basedir}から


pom.xmlファイル

したがって

を含むディレクトリ、原子炉のビルドは、モジュールを含むディレクトリを指して、モジュールごとに、このプロパティを置き換えますpom.xmlファイル(したがって、モジュールのディレクトリ)また、モジュールからビルドを直接実行する際には、現在のディレクトリを明示的に指し示すように正しく動作します。

メモ:${basedir}も有効ですが、project.basedirの方が推奨されていません。後者を使用する方がよいでしょう。

+0

ありがとう、私はそれをテストし、その後あなたに100点を与えるでしょう。 – quma

+0

@ user3318489助けてくれて嬉しいです!あなたが賞金を割り当てたので、解決策としてはうまくいきました。その場合、私はそれを回答√として受け入れることを提案し、その質問は統計的に未回答のように見えないようにする。ありがとう –

0

あなたはとして縮小化カム:

<plugin> 
      <groupId>com.samaxes.maven</groupId> 
      <artifactId>minify-maven-plugin</artifactId> 
      <version>1.7.4</version> 
      <executions> 
       <execution> 
        <id>minify-css</id> 
        <configuration> 
        <charset>utf-8</charset> 
        <skipMerge>true</skipMerge> 
        <statistics>true</statistics> 
        <cssSourceDir>css</cssSourceDir> 
        <cssTargetDir>css/min</cssTargetDir> 
        <cssSourceIncludes> 
         <cssSourceInclude>*.css</cssSourceInclude> 
        </cssSourceIncludes> 
        </configuration> 
        <goals> 
        <goal>minify</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>minify-js-cfl</id> 
        <configuration> 
        <charset>utf-8</charset> 
        <skipMerge>true</skipMerge> 
        <statistics>true</statistics> 
        <jsSourceDir>js/xyz/modules/cfl</jsSourceDir> 
        <jsTargetDir>js/xyz/modules/cfl/min</jsTargetDir> 
        <jsSourceIncludes> 
         <jsSourceInclude>*.js</jsSourceInclude> 
        </jsSourceIncludes> 
        </configuration> 
        <goals> 
        <goal>minify</goal> 
        </goals> 
       </execution> 
       <execution> 
関連する問題