2016-11-01 42 views
6

Mamy duży projekt, który wykorzystuje Mavena jako system kompilacji. Zdecydowaliśmy, że w przyszłych projektach będziemy używać Gradle'a jako wygodniejszego narzędzia, ale chcemy też użyć Gradle do naszego starszego projektu.Dołącz moduł Gradle do projektu Maven

Myślę, że migracja z Maven do Gradle za jednym razem będzie bardzo bolesna, ponieważ mamy TONY kodu w plikach POM (mamy naprawdę ciężką logikę kompilacji).

Wiem, że Gradle ma narzędzie do automatyzacji (gradle init), ale nie działa poprawnie (myślę, że to narzędzie jest przeznaczone dla małych projektów Maven bez określonej logiki budowania).

Oto pytanie: czy mogę dołączyć moduł Gradle do projektu Maven do migracji z małymi krokami? Może istnieje wtyczka Maven, która pozwala traktować plik build.gradle jako plik ?

Odpowiedz

6

Istnieje gradle-maven-plugin, który pozwala na uruchamianie zadań Gradle z wnętrza Maven. Z opisu wtyczki:

Aby korzystać z wtyczki, wystarczy zadeklarować wtyczki i powiązać go do Maven fazy cyklu życia swojego wyboru:

<plugin> 
    <groupId>org.fortasoft</groupId> 
    <artifactId>gradle-maven-plugin</artifactId> 
    <version>1.0.8</version> 
    <configuration> 
     <tasks> 
      <!-- this would effectively call "gradle doSomething" --> 
      <task>doSomething</task> 
     </tasks> 
    </configuration> 
    <executions> 
     <execution> 
      <!-- You can bind this to any phase you like --> 
      <phase>compile</phase> 
      <goals> 
       <!-- goal must be "invoke" --> 
       <goal>invoke</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Teraz po uruchomieniu Maven, Gradle zostanie wywołany i wykonaj zadanie "doComm" z zdefiniowane w build.gradle.

Oczywiście można zmienić zadanie (e) w zależności od potrzeb.

W tym przykładzie wywołanie gradle stanie się podczas fazy "kompilacji", ale można to łatwo zmienić, zmieniając wartość elementu .

Nie jestem pewien, jak dołączyć artefakty z Gradle do twoich zależności, może będziesz musiał opublikować ten artefakt w lokalnym repozytorium maven, aby udostępnić go do swojego projektu maven.

3

Może się przydać moja wtyczka gradle-maven-share. Został zaprojektowany, aby pomóc migracji z maven do gradle, dzieląc konfigurację maven z gradle.