Comment avoir Maven montrer fuseau horaire local dans maven.construire.timestamp?
Dans Maven 3.2.2+, le maven.build.timestamp
a été redéfini pour afficher l'heure en UTC, comme par MNG-5452.
Est-il un moyen de spécifier que je veux le fuseau horaire de l'info dans mon fuseau horaire local et pas en UTC? J'ai brièvement parcouru le maven sources, mais ne voit pas de toute façon à spécifier que je veux le TZ locaux, TZ et non UTC.
Vous devez vous connecter pour publier un commentaire.
Comme déjà mentionné, dans les versions actuelles de Maven (au moins jusqu'à la version 3.3.+), le
maven.build.timestamp
de propriété ne permet pas de fuseau horaire remplace.Toutefois, si vous êtes d'accord à l'utilisation d'un autre nom de la propriété en fonction de vos objectifs, la construire-helper-maven-plugin vous permet de configurer la coutume des horodateurs pour une variété de fins. Voici un exemple pour configurer le timestamp actuel dans l'est lors d'une compilation.
Ensuite, vous pouvez utiliser le
${build.time}
de la propriété au lieu de${maven.build.timestamp}
où vous avez besoin d'un timestamp de la construction de votre choix du fuseau horaire.<timeZone>MEZ</timeZone>
, j'ai besoin d'utiliser<timeZone>Europe/Zurich</timeZone>
Je pense qu'il n'est pas de pure Maven solution, mais vous pouvez utiliser une tâche Ant.
Suivant les instructions données dans le Les développeurs de plugin Maven livre de recettes, vous pouvez générer un
filter.properties
fichier avec l'<tstamp>
tâche ant. Dans cet élément, vous pouvez personnaliser votre timestamp avec la même date/heure modèle que le La classe SimpleDateFormat et également utiliser le Le fuseau horaire de classe. Vous pouvez ensuite utiliser${build.time}
, par défaut il utilise votre fuseau horaire local.1)Utiliser le maven-antrun-plugin
2)Activez le filtrage
Il n'y a pas de solution mais une solution de contournement. Pensez-vous arrivé à utiliser maven buildnumber-maven-plugin plugin?
Si oui, vous pouvez l'utiliser pour générer de révision pour vous et construction d'horodatage. L'horodatage sera base sur votre java temps la configuration de la zone.
Edit: Néanmoins la question est à propos de
timestamp
, comme Dean Schulze souligné, seule la premièreexecution
cassera${buildNumber}
. Pour corriger cela, vous aurez à ajouter un autreexecution
à votre configuration qui permettra de créerbuildRevision
. Mise à jour de l'exemple, ci-dessous.Ex.:`
Que vous pouvez utiliser
${buildDateTime}
où vous voulez injecter votre timestamp variable. Une autre exécution, avec le même objectif sera de magasin, vous une révision.${buildNumber}
buildRevision
Ce que j'ai fait, mais peut ne pas s'appliquer à d'autres personnes, cependant, c'est que je exporter une variable d'environnement dans bash comme
et puis, en consommer dans l'pom.xml lors de la construction de mon projet.