Обернуть кучу задач муравья в плагин Maven? - PullRequest
0 голосов
/ 25 января 2011

У меня есть куча проектов maven, которым нужно выполнить ту же последовательность задач ant с помощью maven-antrun-plugin на этапе сборки / развертывания.

Я не хочу отменять реализациюmaven-antrun-plugin в родительском проекте, поэтому все другие проекты, использующие этот плагин, унаследуют эти шаги.

Поэтому я хотел написать свой собственный плагин maven, который работает как оболочка maven-antrun-plugin со специальнымпоследовательность задач муравья.Но в настоящее время я не добился успеха в этом.

Я посмотрел:

http://maven.apache.org/guides/plugin/guide-ant-plugin-development.html

, но столкнулся с той же проблемой, описанной здесь:

http://www.mail-archive.com/users@maven.apache.org/msg92676.html

(использование версий, предложенных в приведенном выше сообщении, не решает проблему)

и от: http://www.mail-archive.com/users@maven.apache.org/msg115264.html похоже учебник работает только с maven2:

У меня также естьпопытался украсть что-то отсюда:

http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

, но все еще не работает плагин.

Плагин, который я хочу обернуть, выглядит так:

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>test</id>
            <phase>deploy</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <!--  execute task A,B and D -->
              </tasks>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-jsch</artifactId>
            <version>1.8.1</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

Можно ли поместить последовательность задач A, B и C в другой плагин, а затем использовать этот плагин там, где это необходимо?

Я также пытался переместить плагин antrun к родителю иотключите его для некоторых детей, устанавливая наследование в false:

http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_inherited_Tag_In_Build_Plugins

, но задание, определенное в родительском объекте, все еще выполняетсявыполнено, так что установка наследования в false не работает.

1 Ответ

0 голосов
/ 27 января 2011

Если вы хотите определить <plugin> в родительском элементе и разрешить детям использовать его соответствующим образом, вы можете определить его в разделе <pluginManagement>.Делая это, родитель не будет выполнять плагин.Он будет выполняться только для тех детей, которые определяют этот плагин в своем пом.

Что касается последовательности задач муравья, не будет ли проще создать task в вашем скрипте муравья, который вызывает задачи AB и C в последовательности и продолжают использовать функциональность maven-antrun-plugin по умолчанию?

...