Как я могу сделать резервную копию файла, используя pom.xml? - PullRequest
2 голосов
/ 08 июня 2011

У меня здесь три вопроса.Во-первых, имеет ли pom.xml maven какое-либо отличие от другого xml-файла?

Во-вторых, если я хочу переименовать файл в том же каталоге, что и pom.xml, с помощью скриптов, могу ли я сделать это в pom.xml?Если возможно, то как мне это сделать?

Последнее, как мне узнать текущее время в pom.xml?

На самом деле, я хочу добиться того, чтобы я хотелсделайте резервную копию текущего пакета (.war), добавив его вместе с метками времени, прежде чем я сделаю mvn-пакет.Я хочу, чтобы весь процесс автоматизировался pom.xml, а не обрабатывал его вручную.

Привет,

Я найду способ получить отметку времени, будет ли она работать?

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactID>buildnumber-maven-plugin</artifactId>
  <execution>
  <phrase>package</phrase>
  <configuration>
    <format>{0, date, yyyy-MM-dd HH:mm:ss}</format>
    <items>timestamp</items>  
  </configuration>
  <execution>
</plugin>

будет ли работать?если это работает, как я могу получить переменную timestamp?$ items или $ timestamp?

Спасибо

Ответы [ 2 ]

2 голосов
/ 08 июня 2011
  1. Maven pom.xml - это просто еще один XML-файл, и он не отличается от других.Он следует тем же стандартам XML.

Теперь для вопросов 2 и 3, во-первых, когда вы запустите mvn clean, он сбросит все файлы, включая war из целевой папки.

Вы можете запускать задачи ANT для переименования и резервного копирования текущей войны, но ее нельзя выполнить перед чисткой.Я бы предложил вам следующий подход:

  • Выполнить maven-antrun-plugin как часть цели package.
  • В цели ANT переименуйте и сделайте резервную копию текущей упакованной войны.

В качестве альтернативы :
Я хотел бы предложить следующее: В WAR pom.xml укажите элемент <version> стекущая отметка времени и желаемая версия.Таким образом, каждая война будет скопирована в разные каталоги в локальном репозитории maven.

PS: Насколько я знаю, вы не можете создавать метки времени в maven.Передайте его через некоторую внешнюю переменную

1 голос
/ 08 июня 2011

Возможно, вам следует установить контекст для ваших вопросов, чтобы получить лучшие ответы. Во всяком случае, здесь идет.

  • pom.xml - это файл xml с собственной схемой . Таким образом, он отличается от других XML-файлов.

  • Есть несколько способов переименовать файл, используя maven. Это обсуждение SO дает варианты. Один из них выглядит следующим образом:

По сути, у вас есть помпа с записями, похожими на записи в в этом примере (внешние build.xml). Ваш ant build.xml будет иметь записи, подобные этой:

<?xml version="1.0"?>
<project name="dummy">
    ...
    <target name="rename">
        <move file="file.orig" tofile="file.moved"/>
    </target>
    ...
</project>
  • Вы можете использовать специальную переменную maven для метки времени, как описано здесь . Обратитесь к этому SO обсуждению о том, как его использовать.

    maven.build.timestamp Отметка времени, обозначающая начало сборки. Начиная с Maven 2.1.0-M1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...