Команда для запуска только одного конкретного тестового плагина, определенного в Maven - PullRequest
0 голосов
/ 08 января 2010

У меня есть файл Maven POM с плагином, который запускается на этапе тестирования. Какие аргументы командной строки я должен передать mvn, чтобы выполнить только этот плагин, а не все плагины для этой фазы? Я также пытаюсь выполнить определенный плагин ant-run, который выглядит следующим образом:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.3</version>
        <dependencies>
          <dependency>
            <groupId>com.googlecode.jslint4java</groupId>
            <artifactId>jslint4java-ant</artifactId>
            <version>1.3.3</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>jslint</id>
            <phase>test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <ant antfile="${basedir}/jslint.xml">
                  <property name="root" location="${basedir}" />
                  <target name="jslint" />
                </ant>
              </tasks>
            </configuration>
          </execution>
        </executions>
    </plugin>

Спасибо.

1 Ответ

2 голосов
/ 08 января 2010

Укажите полностью определенную цель в виде:

mvn groupID:artifactID:version:goal

Например:

mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi

РЕДАКТИРОВАТЬ: Я изменяю свой ответ, чтобы покрыть обновление первоначального вопроса и комментарий от ОП.

Я не буду раскрывать все детали, но, в конкретном случае плагина antrun, вы можете просто запустить:

mvn antrun:run

Но теперь, когда вы обновили вопрос, я понимаю, что все немного сложнее, чем я думал изначально, и я не думаю, что это действительно сработает. Я имею в виду, что вызов mvn antrun:run не будет неудачным, но он не поднимет configuration из execution, привязанного к фазе test.

Единственное (некрасивое) решение, которое я могу придумать, - это добавить еще одну конфигурацию maven-antrun-plugin в специфический профиль , примерно так:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.3</version>
    <dependencies>
      <dependency>
        <groupId>com.googlecode.jslint4java</groupId>
        <artifactId>jslint4java-ant</artifactId>
        <version>1.3.3</version>
      </dependency>
    </dependencies>
    <configuration>
      <tasks>
        <ant antfile="${basedir}/jslint.xml">
          <property name="root" location="${basedir}" />
          <target name="jslint" />
        </ant>
      </tasks>
    </configuration>
  </plugin>

И использовать этот профиль при звонке antrun:run:

mvn antrun:run -Pmyprofile-for-antrun
...