gpt4 book ai didi

maven - 将缩小的文件放入 jar 中

转载 作者:行者123 更新时间:2023-12-02 16:22:17 26 4
gpt4 key购买 nike

我将使用 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 配置,我在左侧得到以下文件夹结构,但我需要右侧的文件夹结构。有没有可能做到这一点?

Current and needed folder structure

最佳答案

文件从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 - 将缩小的文件放入 jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com