2016-03-31 2 views
4

J'utilise le plugin maven minify-maven-plugin afin de réduire mon projet frontal. Cela fonctionne bien quand je vais sur boîte dos au projet frontend et Execute mvn clean install mais quand j'exécute mvn clean install dans la principale pom dans mon projet de réacteur alors je reçois l'exception suivante:minify frontend avec minify-maven-plugin

Impossible d'exécuter com.samaxes de but. maven: minify-maven-plugin: 1.7.4: minimise (default-minify) sur le projet my.project-frontend: Execution default-minify de l'objectif com.samaxes.maven: minify-maven-plugin: 1.7.4: minify échoue : basedir ./src/main/resources/public/app/. n'existe pas

Est-ce que quelqu'un sait quoi faire pour que cela fonctionne?

Ci-dessous la configuration du plugin concernée:

<!-- minify plugin --> 
    <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> 
       <nosuffix>true</nosuffix> 
       <closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel> 
       <webappSourceDir>src/main/resources/public/app</webappSourceDir> 
       <webappTargetDir>${project.build.outputDirectory}/public/app</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 plugin end --> 
+0

* basedir ./src/main/resources/public/app/. n'existe pas*. C'est clair non? Le dossier existe-t-il? – Tunaki

+0

Oui, il existe, sinon le projet ne peut pas être construit quand j'exécute mvn clean install dans le projet. Le problème doit être avec le chemin concernant le réacteur-projet. – quma

Répondre

6

j'ai pu reproduire votre problème et Réparez en changeant l'entrée de configuration ci-dessous

<webappSourceDir>src/main/resources/public/app</webappSourceDir> 

à

<webappSourceDir>${project.basedir}/src/main/resources/public/app</webappSourceDir> 

C'est, en ajoutant la norme ${project.basedir} propriété en tant que préfixe. Avec cela, la construction a été réussie à partir du module lui-même mais aussi du module parent (la construction du réacteur/agrégateur). Grâce à ce préfixe, la construction du réacteur résoudra correctement le chemin, pointant vers le répertoire de base actuel (celui du module concerné) pendant la construction.


De officielle Maven Builder model documentation

{project.basedir} le répertoire contenant le fichier pom.xml

Par conséquent, la construction du réacteur remplacera cette propriété pour chaque module, pointant sur le répertoire contenant le module pom.xml fichier (d'où le répertoire du module). Il fonctionnera également correctement lors de l'exécution de la construction à partir du module directement, en pointant de toute évidence sur le répertoire en cours.

Notez également: ${basedir} fonctionnerait également, mais il est déconseillé en faveur de project.basedir, donc préférable d'utiliser ce dernier.

+0

Merci beaucoup, je vais le tester et après vous donnera les 100 points. – quma

+0

@ user3318489 heureux de le voir aidé !, puisque vous avez attribué la prime, je suppose que c'était bien comme une solution. Dans ce cas, je suggérerais également de l'accepter comme réponse √ afin que la question n'apparaisse pas statistiquement sans réponse. Merci –

0

Vous rapetisser cames:

<plugin> 
      <groupId>com.samaxes.maven</groupId> 
      <artifactId>minify-maven-plugin</artifactId> 
      <version>1.7.4</version> 
      <executions> 
       <execution> 
        <id>minify-css</id> 
        <configuration> 
        <charset>utf-8</charset> 
        <skipMerge>true</skipMerge> 
        <statistics>true</statistics> 
        <cssSourceDir>css</cssSourceDir> 
        <cssTargetDir>css/min</cssTargetDir> 
        <cssSourceIncludes> 
         <cssSourceInclude>*.css</cssSourceInclude> 
        </cssSourceIncludes> 
        </configuration> 
        <goals> 
        <goal>minify</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>minify-js-cfl</id> 
        <configuration> 
        <charset>utf-8</charset> 
        <skipMerge>true</skipMerge> 
        <statistics>true</statistics> 
        <jsSourceDir>js/xyz/modules/cfl</jsSourceDir> 
        <jsTargetDir>js/xyz/modules/cfl/min</jsTargetDir> 
        <jsSourceIncludes> 
         <jsSourceInclude>*.js</jsSourceInclude> 
        </jsSourceIncludes> 
        </configuration> 
        <goals> 
        <goal>minify</goal> 
        </goals> 
       </execution> 
       <execution>