2014-12-19 2 views
1

Я разрабатываю небольшой плагин maven, и мне нужно отредактировать некоторые файлы css и js из целевого объекта (а не из src!). И я не могу понять, на какой стадии я могу это сделать.Maven plugin - редактировать файлы в target (war)

Чтобы получить доступ к ЦСИ я использую phases:generate-resources и следующий код:

MavenProject project = (MavenProject) getPluginContext().get("project"); 
String projectDir=project.getBasedir().toString(); 

Как я могу получить цель, когда все JS, CSS файлы копируются там, но война файл не создается для того, чтобы изменить некоторые файлы с целью и получить окончательную войну с некоторыми изменениями js и css-файлов?

EDIT
Для чего это необходимо. У меня есть js-файлы в моем проекте: a.js, b.js. Я хочу обфускать их через maven. Я имею в виду, запутывать, когда я строю проект. И, конечно же, все файлы в финальной войне должны быть запутаны, но те же файлы в src должны быть оставлены без пуска. Кроме того, мне нужно объединить некоторые запутанные файлы в один файл.

+0

Какова цель этого и почему вы любите это делать? – khmarbaise

+0

@khmarbaise Мне нужно выполнить некоторые операции с js (обфускать их и сформировать пучки некоторых из них) –

+0

@khmarbaise Мой подход к решению такой проблемы не так? –

ответ

1

Я нашел ответ. Проблема в том, что мы должны добавить некоторую логику между фазами «подготовить-пакет» и «пакет». Поскольку мы используем maven-war-plugin, мы можем сделать это, используя цель exploded. Из официальных документов:

Создание взорванного webapp в указанной директории.

И здесь необходимо помнить одну важную вещь, что Maven после версии 2.0.1 копии ресурсов в два раза, так что если мы хотим использовать Maven 2,5 мы должны использовать <useCache>true</useCache>. Таким образом, окончательное решение:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.5</version> 
    <executions> 
    <execution> 
     <id>prepare-war</id> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>exploded</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <useCache>true</useCache>  
</configuration> 
</plugin> 

<plugin> 
    <groupId>my plugin</groupId> 
    <artifactId>...</artifactId> 
    <version>....</version> 
    <executions> 
    <execution> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>...</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 
Смежные вопросы