Я буду использовать зависимость maven com.samaxes.maven # minify-maven-plugin, чтобы минимизировать мой проект frontend. Этот frontend-проект упакован в банку (java-архив), поэтому у меня нет файла войны, потому что я использую Spring boot.Поместите мини-файлы в банку
С конфигурацией внизу * .min.js и * .min.css создаются файлы, но они не передаются в файл jar. Я прочитал несколько потоков, и я пробовал что-то, но не безуспешно: в JAR-файле все еще есть unminified css и js-файлы.
Есть ли у кого-нибудь намек на то, что я могу сделать. У меня есть много css и js-файлов в моем проекте в разных структурах папок, и мини-файлы должны быть размещены в том же месте, что и unminified.
<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>
Есть ли возможность сделать это, как это?
<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>
С преуменьшать-Maven-плагин конфигурации выше я получаю следующую структуру папок на левой стороне, но я должен был бы структуру папок на правой стороне стороне. Есть ли возможность сделать это?
Сначала вы должны изменить фазу преуменьшать плагин для 'подготовить-package' Кроме того, вы не должны используйте 'src/main/resources' и измените' webappTargetDir' на '$ {project.build.outputDirectory}' (папка target/classes) ...... Если вы используете папку 'src/main/resources', которая копируется во время фазы ресурсов в «цель/классы», которая на самом деле не то, что вы хотите .... – khmarbaise
Спасибо за ответ. есть ли возможность поместить мини-файлы, где находится исходный путь к файлу? Большое спасибо! – quma
Что делать, если вы попробуете ' $ {project.build.outputDirectory}/public/app webappTargetDir>'? –
Tunaki