Автокапитализация собственности в Maven
У меня есть проект Maven, который требует установки свойства в командной строке (-Dmy.property=val). Что мне нужно сделать, это преобразовать эту строку во все заглавные буквы, поскольку это свойство используется для замены строки в ряде файлов через плагин maven-resources-plugin. Какой самый простой способ сделать это?
2 ответа
Решение
Groovy плагин может быть использован. Следующее настраивает его для запуска в начале процесса сборки Maven:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
import org.apache.commons.lang.StringUtils
project.properties["my.property"] = StringUtils.upperCase(project.properties["my.property"])
</source>
</configuration>
</execution>
</executions>
</plugin>
С помощью следующего кода, MY_PROPERTIES
равно заглавной стоимости my.properties
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>properties-to-uppercase</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>MY_PROPERTY</name>
<regex>.*</regex>
<value>${my.property}</value>
<replacement>$0</replacement>
<failIfNoMatch>false</failIfNoMatch>
<toUpperCase>true</toUpperCase>
</configuration>
</execution>
</executions>
</plugin>