Jak uzyskać dostęp do maven.buduj.znacznik czasu dla filtrowania zasobów
Używam maven 3.0.4 i chciałbym, aby znacznik czasu kompilacji był dostępny dla mojej aplikacji. W tym celu umieszczam Element Zastępczy w pliku .properties
i pozwalam maven filter na kompilacji. Podczas gdy to działa dobrze dla ${project.version}
, ${maven.build.timestamp}
nie jest zastępowany podczas filtrowania.
Właściwość wydaje się być dostępna na build - mogę jej użyć do modyfikacji nazwy artefaktu:
<finalName>${project.artifactId}-${maven.build.timestamp}</finalName>
Więc dlaczego nie jest dostępny dla filtrowania zasobów? I, co ważniejsze, jak to zrobić dostępny?
2 answers
Odkryłem Ten artykuł, wyjaśniając, że z powodu błędu w maven, znacznik czasu kompilacji nie jest propagowany do filtrowania. Obejście polega na zawinięciu znacznika czasu w inną właściwość:
<properties>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
</properties>
Filtrowanie działa zgodnie z oczekiwaniami dla
buildTimestamp=${timestamp}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-21 13:50:28
W celu wzbogacenia treści Stoskoverflow dla innych, którzy tak jak ja, znaleźli ten post jako sposób na rozwiązanie" problemu " ${maven.build.timestamp}
. To nie jest błąd Mavena, ale oczekiwane zachowanie m2e, co widać w ten post.
Dlatego uważam, że nie możemy oczekiwać, że rozwiązanie zostanie "poprawione", ponieważ z tego, co rozumiem, korekta obejmuje kwestie koncepcyjne.
W moim przypadku skorzystałem z wtyczki (buildnumber-maven-plugin
) jak opisano w tym Inne post .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:00