Będę używał zależności maven com.samaxes.maven # minify-maven-plugin, aby zminimalizować mój projekt frontendu. Ten frontend-projekt jest pakowany do słoika (archiwum Java) - więc nie mam pliku wojny, ponieważ używam Spring boot.Umieść zminimalizowane pliki w słoju
Przy konfiguracji u dołu * .min.js i pliki * .min.css są generowane, ale nie są pakowane do pliku jar. Czytałem niektóre wątki i próbowałem czegoś, ale bez powodzenia: w pliku JAR wciąż są nieskasowane pliki css i js.
Czy ktoś ma podpowiedź co mogę zrobić. Mam dużo plików css i js w moim projekcie w różnych strukturach folderów, a zminimalizowane pliki powinny być umieszczone w tym samym miejscu, co pliki niezminiaturowane.
<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]
mam edit plugin Maven w ten sposób. Naprawdę muszę użyć src/main/recoures - to specyfikacja w naszym projekcie.
Mój problem jest teraz, że pliki w różnych folderach unter pod główną ścieżkę folderu publiczny/app są minified ALE foldery z plikami minified są na tym samym poziomie niż mój folder publicznego jest.
Więc muszę coś takiego:
<webappTargetDir>**public/app/**${project.build.outputDirectory}</webappTargetDir>
Czy istnieje możliwość, aby zrobić to w ten sposób?
<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>
Z Minify-maven-plugin konfiguracji powyżej otrzymuję następującą strukturę folderów po lewej stronie, ale musiałbym strukturę folderów na rigth stronie. Czy jest taka możliwość?
najpierw trzeba zmienić fazę wtyczki minify do 'przygotować-package' ponadto nie należy użyj 'src/main/resources' i zmień' webappTargetDir' na '$ {project.build.outputDirectory}' (folder target/classes) ...... Jeśli używasz folderu 'src/main/resources', który jest kopiowany w fazie zasobów do 'target/classes', które tak naprawdę nie jest tym, czego potrzebujesz .... – khmarbaise
Dziękuję za reakcję. czy istnieje możliwość umieszczenia zminimalizowanych plików w oryginalnej ścieżce pliku? Wielkie dzięki! – quma
Co jeśli wypróbujesz ' $ {project.build.outputDirectory}/public/app webappTargetDir>'? –
Tunaki