2012-06-29 3 views
1

Я не смог найти плагин maven, который соответствовал моим потребностям для минимизации javascript и css, поэтому я начал создавать свои собственные. Однако, похоже, я попал в блокпост. Минимизированные версии файлов всегда перезаписываются либо военным плагином, либо чем-то еще.Плагин Maven: изменение ресурсов перед упаковкой

Моя файловая структура

src 
    main 
     java 
     webapp 
      assets 
       css 
        style1.css 
        style2.css 
        style3.css 
       js 
        script1.js 
        script2.js 
        script3.js 

Мой плагин принимает те, минимизирует их, и (предполагается) заменяет их в директории сборки. Как я могу убедиться, что они не перезаписаны?

ответ

1

Где ваш плагин выводит измененные файлы? Как я вижу это, он вносит необходимые изменения (если он работает), а затем плагин maven war копирует исходные ресурсы поверх них.

Возможно, вы должны приложить свой код и pom.xml для получения более точного ответа.

EDIT:

После того, как взглянули на тестовом проекте, проблема может решена со следующим изменением вашей pom.xml:

diff --git a/pom.xml b/pom.xml 
index 0fb6044..ee693f7 100644 
--- a/pom.xml 
+++ b/pom.xml 
@@ -72,9 +72,17 @@ 
           <version>2.2</version> 
           <configuration> 
             <webappDirectory>${basedir}/src/main/webapp</webappDirectory> 
+          <warSourceExcludes>assets</warSourceExcludes> 
+ 
             <failOnMissingWebXml>false</failOnMissingWebXml> 
+          <webResources> 
+            <resource> 
+              <!-- this is relative to the pom.xml directory --> 
+              <directory>${project.build.directory}/minified</directory> 
+            </resource> 
+          </webResources> 
           </configuration> 
         </plugin> 
       </plugins> 
     </build> 
-</project> 
\ No newline at end of file 
+</project> 

Я также под впечатлением, что ваш измененные файлы css изменяются в каталог src/main/webapp/assets, который является неправильным. Эти файлы должны быть изменены только после копирования в соответствующий каталог под целевым каталогом.

Я разветвил ваш репозиторий и отправил вам запрос на тяну.

+0

Я скоро поставлю его на github и затем отвечу. Прямо сейчас он выводит его в $ {project.build.directory}/$ {finalName} /, а затем структуру файла из папки webapp – alta189

+0

Я вполне уверен, что это становится чрезмерно тяжелым, я просто не уверен, как я должен делать это ... это первый раз, когда я создал плагин maven ... – alta189

+0

Если вы положите его на GitHub, я посмотрю. – carlspring

1

Прежде всего, я рекомендую использовать только http://alchim.sourceforge.net/yuicompressor-maven-plugin/compress-mojo.html, который способен сжимать и сжимать JS/CSS для вас.

Рядом с этим вам нужно выяснить, какой плагин фактически перезаписывает сжатые файлы и на какой стадии это происходит. Как только вы узнаете о фазе, вам нужно убедиться, что вы плагин запускает после другого плагина.

+0

Дело в том, что я не хочу, чтобы он сливался, я уже пробовал этот плагин, он не отвечал моим потребностям. Кроме того, я знаю, что их перезаписывает, его военный плагин. Он копирует ресурсы, затем src/main/webapp и, наконец, упаковывает его. Все в той же фазе – alta189

Смежные вопросы