2017-05-11 2 views
0

Ich habe ein Multi-Modul Maven-Projekt und in jedem Modul gibt es einige Komponententests.Vermeiden Unit-Tests in unveränderten Modulen in Maven

Wenn ich den Quellcode in einem Modul ändere und ein "mvn-Paket" mache, werden auch die Tests in anderen Modulen ausgeführt.

Ich weiß, dass mvn "Paket" Lebenszyklus führt alle Lebenszyklen vor "Paket" (kompilieren, testen, etc.).

Aber gibt es einen klugen Weg, dass dies vermieden werden kann?

+0

http://stackoverflow.com/questions/42338827/skip-maven-build-for-un-modified-modules – Nemesis

+0

Verwenden Sie mavens '-pl: project1,: project2' Parameter, um nur geänderte Unterprojekte zu erstellen. –

+0

@TimothyTruckle Ich mache den Build in meinem Jenkins. Woher weiß ich, welches Modul geändert wurde? – Yashu

Antwort

0

Kann nicht kommentieren, da ich nicht genug Punkte habe. Zusätzlich zu @ timothy-truckle können Sie das Flag "-am" verwenden, um alle Abhängigkeiten neu zu kompilieren und zu testen. zB:

mvn -pl moduleX -am package 

kompilieren und testen Modulex und die Module Modulex auf

+0

Hallo @ferrema, ich mache das in meinem Jenkins, also wie würde ich wissen, welches Modul sich geändert hat? – Yashu

+0

@ Yashu, sieht aus wie ein Problem damit in Jenkins: https://issues.jenkins-ci.org/browse/JENKINS-11964 – ferrema

0

Verwenden Maven Profile abhängig ist.

  1. Erstellen Sie ein separates Profil für jedes Modul.
  2. Geben Sie einen einfachen Namen für Profile wie die Artefakt-ID des Moduls.
  3. Konfigurieren Sie Maven-Surefire-Plugin in jedem Modul in seinem Profilabschnitt, um die Komponententests in diesem Modul zu überspringen.
  4. Wenn Sie nun Modul m1 bauen und Unit-Tests überspringen wollen in Module m2 & m3, aktivieren Sie die Profile in m2 & m3 durch commandline,

    mvn Paket -p m2, m3

Verwandte Themen