1
Я хотел бы написать плагин Maven, который выполняет простую поиск и замену в определенных исходных файлах во время сборки. Возможно ли это?Как изменить исходный код в контексте плагина Maven?
Я хотел бы написать плагин Maven, который выполняет простую поиск и замену в определенных исходных файлах во время сборки. Возможно ли это?Как изменить исходный код в контексте плагина Maven?
Да, это возможно. Вы должны прочитать 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>
Я думаю, что да, почему нет? Просто привяжите его к фазе, которая происходит перед компиляцией, и вам должно быть хорошо идти. –
дополнительно убедитесь, что ваш плагин добавляет выходной каталог ваших измененных источников в путь компиляции (см. Метод MavenProject.addCompileSourceRoot()), чтобы плагин компилятора знал, что есть другая исходная папка. – tdrury