2013-07-19 2 views
1

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

+0

Я думаю, что да, почему нет? Просто привяжите его к фазе, которая происходит перед компиляцией, и вам должно быть хорошо идти. –

+0

дополнительно убедитесь, что ваш плагин добавляет выходной каталог ваших измененных источников в путь компиляции (см. Метод MavenProject.addCompileSourceRoot()), чтобы плагин компилятора знал, что есть другая исходная папка. – tdrury

ответ

3

Да, это возможно. Вы должны прочитать Guide to Developing Java Plugins.

Возможно, вместо создания нового плагина вы можете использовать существующий.

Пример com.google.code.maven-replacer-plugin:replacer:

<plugin> 
    <groupId>com.google.code.maven-replacer-plugin</groupId> 
    <artifactId>replacer</artifactId> 
    <version>1.5.3</version> 
    <configuration> 
     <file>FILE PATH (example: ${basedir}/src/main/webapp/index.html)</file> 
     <token>SEARCHED TEXT (example: .css)</token> 
     <value>REPLACEMENT (example: .min.css)</value> 
    </configuration> 
</plugin> 

Если вы хотите заменить данные XML, то вы должны использовать CDATA разделы:

<plugin> 
    <groupId>com.google.code.maven-replacer-plugin</groupId> 
    <artifactId>replacer</artifactId> 
    <version>1.5.3</version> 
    <configuration> 
     <file>${basedir}/src/main/webapp/WEB-INF/web.xml</file> 
     <token><![CDATA[SEARCHED TEXT (example: <foo>)]]></token> 
     <value><![CDATA[REPLACEMENT (example: <foo2>)]]></value> 
    </configuration> 
</plugin> 
Смежные вопросы