2016-01-13 6 views
9

私はフロントエンドプロジェクトを縮小するために、maven依存関係com.samaxes.maven#minify-maven-pluginを使用します。このフロントエンドプロジェクトはjar(Javaアーカイブ)にパッケージ化されているので、Springブートを使用しているのでwarファイルはありません。縮小したファイルをjarに配置する

下の設定では、* .min.jsおよび* .min.cssファイルが生成されますが、jarファイルには埋め込まれません。いくつかのスレッドを読んだことがありますが、何も試してみましたが、成功しませんでした.JARファイルには、まだunminified cssとjsファイルがあります。

誰でも私ができることは何かヒントはありますか?私は、異なるフォルダ構造の私のプロジェクトに多くのcssとjsファイルを持っています。そして、縮小されたファイルは、展開されていないファイルのように同じ場所に配置しなければなりません。

<build> 
<plugins> 
    <plugin> 
    <groupId>com.samaxes.maven</groupId> 
    <artifactId>minify-maven-plugin</artifactId> 
    <version>1.7.4</version> 
    <executions> 
     <execution> 
     <id>default-minify</id> 
     <phase>package</phase> 
     <configuration> 
      <charset>UTF-8</charset> 
      <skipMerge>true</skipMerge> 
      <nosuffix>true</nosuffix> 
      <closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel> 
      <webappSourceDir>src/main/resources</webappSourceDir> 
      <cssSourceDir>./</cssSourceDir> 
      <cssTargetDir>./minified</cssTargetDir> 
      <cssSourceIncludes> 
      <cssSourceInclude>**/*.css</cssSourceInclude> 
      </cssSourceIncludes> 
      <cssSourceExcludes> 
      <cssSourceExclude>**/*.min.css</cssSourceExclude> 
      </cssSourceExcludes> 
      <jsSourceIncludes> 
      <jsSourceInclude>**/*.js</jsSourceInclude> 
      </jsSourceIncludes> 
      <jsSourceExcludes> 
      <jsSourceExclude>**/*.min.js</jsSourceExclude> 
      </jsSourceExcludes> 
      <jsEngine>CLOSURE</jsEngine> 
     </configuration> 
     <goals> 
      <goal>minify</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

[EDIT]

私はこのようにMavenプラグインを編集しています。 私は本当にsrc/main/recouresを使う必要があります。これはプロジェクトの仕様です。

私の問題は今、異なるフォルダ内のファイルが公共/アプリが縮小され、メインフォルダパスの下にウンターが、私のパブリックフォルダがあるよりも縮小さのファイルとフォルダが同じレベルであることです。

<webappTargetDir>**public/app/**${project.build.outputDirectory}</webappTargetDir> 

このようにそれを行うには可能性がある:

は、だから私はこのようなものが必要でしょうか?私は左側に次のフォルダ構造を取得しますが、私はrigth側のフォルダ構造が必要になる上縮小化-のmaven-pluginの構成で

<build> 
<plugins> 
    <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> 
      <closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel> 
      <webappSourceDir>src/main/resources/public/app</webappSourceDir> 
      <webappTargetDir>${project.build.outputDirectory}</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> 

。それを行う可能性はありますか?

Current and needed folder structure

+0

ファーストをコミットしました

<webappSourceDir>src/main/resources</webappSourceDir> <webappTargetDir>${project.build.outputDirectory}</webappTargetDir> 

または

<webappSourceDir>src/main/resources/public/app</webappSourceDir> <webappTargetDir>${project.build.outputDirectory}/public/app</webappTargetDir> 

する必要があります'src/main/resources'を使用し、' webappTargetDir'を '$ {project.build.outputDirectory}'(target/classesフォルダ)に変更してください......コピーされた 'src/main/resources'フォルダリソース段階の間にあなたが本当に望むものではない 'target/classes'へ... – khmarbaise

+0

共鳴に感謝します。元のファイルパスがどこにあるのかを確認してください。どうもありがとう! – quma

+1

' $ {project.build.outputDirectory}/public/app'を実行するとどうなりますか? – Tunaki

答えて

8

ファイルは比較的webappSourceDirからwebappTargetDirにコピーされます。したがって、構造を一致させたい場合は、同様のパターンを使用する必要があります。意味、それは私はあなたがいけない、さらに `準備-package`に縮小化プラグインの位相を変更する必要がある作業例here

+0

ありがとう!もう一つ質問があります。圧縮されていないファイルをjarファイルにパッケージ化しないようにするにはどうしたらいいですか? – quma

+0

同じ名前の場合は、minifierによって書き換えられます。名前が異なる場合は、通常のリソース除外メカニズム(https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html)で除外する必要があります。 –

関連する問題