można zrealizować cel (i jego wykonanie) z linii poleceń, zaczynając od Maven 3.3.1 na i this nowa funkcja, za pomocą dodatkowej opcji @executionId
.
Jeśli chodzi o generowanie Maven i generacji, można również sprawdzić this SO question.
Przed Maven 3.3.1 można zamiast wiązać dwie egzekucje do fazy, które normalnie nie szkodzić (jak validate
) i mieć coś jak następuje:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution-1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution-2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
Następnie wykonywany:
mvn validate
Będziesz skutecznie wykonywać dwie egzekucje tego samego celu tej samej wtyczki, jako część nieszkodliwego faza.
Jeśli nie chcesz mieć je jako część tej fazy Domyślnie (zrozumiałe), a następnie można je przenieść do profilu i aktywować go w ramach wykonania:
mvn validate -PpluginGoalExecution
Dla kompletności , profil będzie wyglądać następująco:
<profile>
<id>pluginExecution</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
i jest rzeczą oczywistą: identyfikator profilu powinna w tym przypadku być dość oczywista, o których wtyczki i jakie celem byłoby rzeczywiście wykonać (czyli cel profil, jak zwykle).
Aktualizacja
tylko kosmetyczne, ale można również dodać do profilowanej budowie powyżej elementu:
<defaultGoal>validate</defaultGoal>
tak, że trzeba tylko uruchomić następującą komendę Maven (tylko profil aktywacyjny):
mvn -PpluginGoalExecution
A następnie automatycznie wykona fazę sprawdzania poprawności i skonfigurowane wykonywanie wtyczek. Nie duża zmiana (jak powiedziałem, kosmetyczne), ale może bliżej wykonania celu wtyczki niż wywołania fazy Maven (znowu, tylko pojawienie się).
Dzięki. To dobra odpowiedź. Niestety nadal jestem na Maven 3.0.5. – peterh
Jeśli jesteś na Maven 3.0.5, to nie jest możliwe ... Możliwe tylko poprzez profile, które mogą być aktywowane przez 'mvn -PXXX1 ...' ... – khmarbaise
@peterh ok. Odpowiednio zaktualizuję swoją odpowiedź, jest sztuczka, może warto dla ciebie –