С Maven2, как мне заархивировать каталог в моих ресурсах? - PullRequest
1 голос
/ 07 мая 2010

Я пытаюсь обновить свой проект с использования Maven 1 до Maven 2, но у меня проблема с одной из целей. У меня есть следующая цель Maven 1 в моем файле maven.xml:

<goal name="jar:init">
    <ant:delete file="${basedir}/src/installpack.zip"/>
    <ant:zip destfile="${basedir}/src/installpack.zip"
             basedir="${basedir}/src/installpack" />

    <copy todir="${destination.location}">
        <fileset dir="${source.location}">
            <exclude name="installpack/**"/>
        </fileset>
    </copy>
</goal>

Однако я не могу найти способ сделать это в Maven2.

Прямо сейчас каталог installpack находится в каталоге ресурсов моей стандартной структуры каталогов Maven2, которая работает хорошо, поскольку ее просто копируют. Мне нужно, чтобы он был застегнут на молнию.

Я нашел эту страницу по созданию плагинов Ant: http://maven.apache.org/guides/plugin/guide-ant-plugin-development.html.

Похоже, я мог бы создать свой собственный плагин ant, чтобы делать то, что мне нужно. Мне просто интересно, есть ли способ сделать это, используя только Maven2.

Любые предложения будут высоко оценены.

Спасибо, B.J.

1 Ответ

2 голосов
/ 07 мая 2010

Вам не нужно создавать плагин ant, используйте задачи Maven Antrun Plugin и Ant, чтобы сжать каталог installpack в целевой папке перед упаковкой.Объявите плагин следующим образом:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase> <!-- a lifecycle phase --> </phase>
            <configuration>
              <tasks>

                <!--
                  Place any Ant task here. You can add anything
                  you can add between <target> and </target> in a
                  build.xml.
                -->

              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Как задокументировано, поместите задачи ant в элемент <tasks> и привяжите плагин к фазе жизненного цикла , возможно, prepare-package фаза (я думаю, jar:init был вызван перед упаковкой).

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