Предположим, у меня есть следующее в моем файле свойств
#production db
db.url=com.some.prod.url
db.port=4565
#development db
#db.url=com.some.dev.url
#db.port=4577
После завершения сборки я хочу, чтобы мой файл свойств был очищен от всех прокомментированных свойств в файле сборки. Итак, окончательный результат таков:
db.url=com.some.prod.url
db.port=4565
не хочу показывать свойства, связанные с производством, на серверах dev / qa и наоборот.
Вы можете попробовать Maven Antrun Plugin и задачу Ant replaceregexp
позволь мне проверить и вернуться
Разобрался наконец.
Использовал maven-replacer-plugin
и заменил регулярное выражение <new line><hash><any set of characters>
, то есть \r\n#(.*)
на <blank>
Обновлять: чтобы иметь возможность выполнить это на jenkins (экземпляр linux, в моем случае), мы добавили шаблон \n#(.*)
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>target/**/*.properties</include>
</includes>
<commentsEnabled>false</commentsEnabled>
<regex>true</regex>
<replacements>
<replacement>
<token>\r\n#(.*)</token>
<value></value>
</replacement>
<!-- Following line was added in update(linux compatible) -->
<replacement>
<token>\n#(.*)</token>
<value></value>
</replacement>
</replacements>
</configuration>
</plugin>
А в чем проблема с комментариями в файлах свойств?