将缩小的文件放入 jar
Place minified files into jar
我将使用 maven 依赖项 com.samaxes.maven#minify-maven-plugin 来缩小我的前端项目。这个前端项目被打包成一个 jar(java 存档)——所以我没有 war 文件,因为我使用 Spring boot.
通过底部的配置生成了 *.min.js 和 *.min.css 文件,但它们没有打包到 jar 文件中。我已经阅读了一些线程并尝试了一些但没有成功:在 JAR 文件中仍然有未缩小的 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>
[编辑]
我已经用这种方式编辑了 Maven 插件。
我真的必须使用 src/main/recoures - 它是我们项目中的规范。
我现在的问题是,主文件夹路径public/app下不同文件夹中的文件被缩小了,但缩小文件的文件夹是相同的比我的 public 文件夹还高。
所以我需要这样的东西:
<webappTargetDir>**public/app/**${project.build.outputDirectory}</webappTargetDir>
有这样的可能吗?
<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>
使用上面的 minify-maven-plugin 配置,我在左侧得到以下文件夹结构,但我需要右侧的文件夹结构。有没有可能这样做?
文件从webappSourceDir
相对复制到webappTargetDir
。因此,如果您希望结构匹配,则应该对这些结构使用相似的模式。意思是,应该是
<webappSourceDir>src/main/resources</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
或
<webappSourceDir>src/main/resources/public/app</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}/public/app</webappTargetDir>
我已经提交了工作示例here
我将使用 maven 依赖项 com.samaxes.maven#minify-maven-plugin 来缩小我的前端项目。这个前端项目被打包成一个 jar(java 存档)——所以我没有 war 文件,因为我使用 Spring boot.
通过底部的配置生成了 *.min.js 和 *.min.css 文件,但它们没有打包到 jar 文件中。我已经阅读了一些线程并尝试了一些但没有成功:在 JAR 文件中仍然有未缩小的 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>
[编辑]
我已经用这种方式编辑了 Maven 插件。 我真的必须使用 src/main/recoures - 它是我们项目中的规范。
我现在的问题是,主文件夹路径public/app下不同文件夹中的文件被缩小了,但缩小文件的文件夹是相同的比我的 public 文件夹还高。
所以我需要这样的东西:
<webappTargetDir>**public/app/**${project.build.outputDirectory}</webappTargetDir>
有这样的可能吗?
<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>
使用上面的 minify-maven-plugin 配置,我在左侧得到以下文件夹结构,但我需要右侧的文件夹结构。有没有可能这样做?
文件从webappSourceDir
相对复制到webappTargetDir
。因此,如果您希望结构匹配,则应该对这些结构使用相似的模式。意思是,应该是
<webappSourceDir>src/main/resources</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
或
<webappSourceDir>src/main/resources/public/app</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}/public/app</webappTargetDir>
我已经提交了工作示例here