Uruchomić pojedyncze wykonanie wtyczki Maven?

98

Myślałem, że jestem doświadczonym użytkownikiem Mavena, ale mam psychiczną blokadę, jak to zrobić!

Udało mi się użyć wtyczki Maven sql do upuszczania, tworzenia i instalowania schematu w bazie danych za pomocą wykonywania wtyczek, które zdefiniowałem i powiązałem z pre-integration-testfazą.

Jednak teraz chciałbym użyć tej samej wtyczki sql do wstawienia przykładowych danych, kiedy tylko zechcę, z wiersza poleceń - to znaczy bez powiązania z żadnym celem cyklu życia. Istnieje kilka różnych zestawów przykładowych danych, dlatego chciałbym zdefiniować kilka różnych wykonań.

Ale czy istnieje sposób na uruchomienie jednego z tych wykonań z wiersza poleceń, być może przy użyciu identyfikatora wykonania?

HDave
źródło

Odpowiedzi:

137

Jak wspomniano w Jak wykonać wykonanie wtyczki maven bezpośrednio z wiersza poleceń? , ta funkcjonalność została zaimplementowana jako MNG-5768 i jest dostępna w Maven 3.3.1.

Zmiana będzie:

rozszerzyć składnię bezpośredniego wywołania wtyczki, aby umożliwić opcjonalny parametr @ identyfikator-wykonania, np. org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ ExecutionId.

Tak więc, o ile podasz swojemu wykonaniu identyfikator:

mvn sql:execute@specific-execution-id

używa wykonania skonfigurowanego w Twoim pom.

Joe
źródło
To jest świetne :)
GabrielBB
49

Ale czy istnieje sposób na uruchomienie jednego z tych wykonań z wiersza poleceń, być może przy użyciu identyfikatora wykonania?

Nie, niemożliwe . Możliwe jest jednak zdefiniowanie konfiguracji „a”, która ma być używana, gdy wtyczka jest wywoływana z wiersza poleceń przy użyciu „specjalnego” default-cliidentyfikatora wykonania:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>
  ...
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        ...
      </configuration>
    </execution>
    ...
  </executions>
</plugin>

I po prostu zadzwoń mvn sql:execute.

Szczegóły poniżej (z informacji o wydaniu Maven 2.2.0 ):

  • MNG-3401 - Począwszy od Maven 2.2.0, cele wywoływane bezpośrednio z wiersza poleceń można konfigurować w POM niezależnie od innych wywołań wtyczek za pomocą specjalnego executionIdwywołania default-cli. Podczas gdy poprzednio wszystkie konfiguracje celów wiersza poleceń musiały być konfigurowane na poziomie wtyczki, Maven 2.2.0 umożliwia rozdzielenie konfiguracji specyficznych dla wiersza poleceń na własne <execution>. Aby uzyskać więcej informacji, zobacz Przewodnik po domyślnych identyfikatorach wykonywania .
Pascal Thivent
źródło
1
Założę się, że możesz osiągnąć to, co chcesz, używając dwóch różnych profili
Daniel Kaplan
4
Ta odpowiedź jest teraz nieaktualna w obecnych wersjach Mavena. Zobacz odpowiedź udzieloną przez @Joe
Noremac