Userò la dipendenza Maven com.samaxes.maven # minify-maven-plugin per minimizzare il mio progetto di frontend. Questo progetto di frontend è impacchettato in un jar (archivio java), quindi non ho file di guerra perché utilizzo Spring boot.Inserire i file minificati nel barattolo
Con la configurazione nella parte inferiore, i file * .min.js e * .min.css vengono generati ma non vengono memorizzati nel file jar. Ho letto alcuni thread e ho provato qualcosa ma senza successo: nel file JAR ci sono ancora i file css e js non ancora terminati.
Qualcuno ha qualche suggerimento su cosa posso fare. Ho molti file css e js nel mio progetto in diverse strutture di cartelle e i file minificati devono essere collocati nello stesso posto come lo sono i file non miniati.
<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]
ho modificare il plugin Maven in questo modo. Devo davvero usare src/main/recoures - è una specifica del nostro progetto.
Il mio problema ora è che i file nelle diverse cartelle Unter sotto il percorso della cartella principale pubblica/app sono ridotte di MA le cartelle con i file minified sono allo stesso livello del mio cartella pubblicaè.
Quindi avrei bisogno di qualcosa di simile:
<webappTargetDir>**public/app/**${project.build.outputDirectory}</webappTargetDir>
C'è la possibilità di farlo in questo modo?
<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>
Con la configurazione diminify-maven-plugin sopra ottengo il seguente struttura delle cartelle sul lato sinistro, ma avrei bisogno la struttura delle cartelle sul lato rigth. C'è qualche possibilità di farlo?
primo luogo si dovrebbe cambiare la fase di plug minify a 'preparare-package', inoltre, non si dovrebbe usa 'src/main/resources' e cambia' webappTargetDir' in '$ {project.build.outputDirectory}' (cartella target/classes) ...... Se usi la cartella 'src/main/resources' che è copiata durante la fase delle risorse in 'target/classes' che non è proprio quello che vuoi .... – khmarbaise
Grazie per la risposta. c'è qualche possibilità di posizionare i file minificati dove è il percorso del file originale? Molte grazie! – quma
Cosa succede se provi ' $ {project.build.outputDirectory}/public/app webappTargetDir>'? –
Tunaki