2016-09-03 4 views
3

У меня есть проект maven, который генерирует файл свойств во время сборки. Одним из свойств, которые я хотел бы включить, являются даты авторских прав на проект.Недвижимость Maven на текущий год

У меня есть свойство определено как таковое:

<properties> 
    <copyright-years>${project.inceptionDate}-2016</copyright-years> 
</properties> 

Я использую build.timestamp свойство в другом месте.

Как я могу заменить 2016 в свойстве на текущий год, в идеале, изменив формат timestamp только в одном экземпляре?

ответ

6

Для этой задачи вы можете использовать build-helper-maven-plugin. Он имеет timestamp-property цель, которая может быть использована для хранения метки времени с заданным форматом в свойство Maven:

Устанавливает свойство на основе текущей даты и времени.

Преимущество заключается в том, что она не заставит вас определить конкретный maven.build.timestamp.format, которое не было бы удобно, если вы собираетесь форматировать текущую дату во втором пути в другом месте. Пример конфигурации будет:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.12</version> 
    <executions> 
    <execution> 
     <id>timestamp-property</id> 
     <goals> 
     <goal>timestamp-property</goal> 
     </goals> 
     <phase>validate</phase> 
     <configuration> 
     <name>current.year</name> 
     <pattern>yyyy</pattern> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Это сохранит текущий год в Maven собственности current.year. Это делается на этапе validate, который является первой фазой, так что вся остальная часть сборки может использовать ее с ${current.year}.

Смежные вопросы