Instal induk POM tanpa membangun modul Anak

115

Saya memiliki POM induk dalam proyek Maven, dengan struktur ini:

             parent
               |
        ---------------
        |             |
      child1       child2

Saya ingin menginstal POM dari "induk" di REPO lokal untuk mengizinkan child1 mengambil beberapa perubahan yang saya lakukan di dependencyManagement, tetapi saya tidak dapat melakukan "instalasi bersih" karena "child2" rusak dan tidak akan dibangun.

Manakah cara yang tepat untuk melakukan ini dengan maven (selain pergi ke pom induk dan memberi komentar pada modul "child2" ).

Tuan Eddart
sumber

Jawaban:

191

Gunakan opsi '-N' pada perintah mvn.

Dari mvn -h:

-N, - non-rekursif Jangan rekursif ke subproyek

Guillaume Polet
sumber
1
Opsi '-N' atau '--non-recursive' berarti tidak muncul kembali ke subproyek.
STB Land
36

Meskipun Guillaume memang benar dan itu adalah opsi yang benar, saya pribadi akan merekomendasikan agar orang tua Anda sebagai modul terpisah.

Saya menemukan pendekatan terbaik untuk warisan adalah sebagai berikut:

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

Dengan cara ini Anda selalu dapat menginstal induk saja, dengan mvn clean installtanpa opsi tambahan.

Anda juga dapat memiliki induk di luar agregator sehingga Anda dapat menggunakannya kembali di antara lebih banyak proyek.

Ada banyak manfaat untuk menjaga induk dan pengumpul sebagai dua hal yang terpisah. Tetapi pada akhirnya, Anda memilih yang terbaik untuk proyek / lingkungan Anda.

carlspring.dll
sumber
1
Saya berjuang dengan masalah ini selama berjam-jam, dan menemukan bahwa beberapa proyek berjalan dengan cara ini, seperti apache sling, JackRabbit dan Artifactory.
accuya
Ini mengisolasi pewarisan modul maven (dependensi, properti dll) dari bangunan batch (modul anak).
Danubian Sailor
4
Apakah ini dianggap praktik terbaik? Ada blog atau lainnya dengan pendekatan ini?
Kereta luncur
1
@ArtB Apakah Anda pernah menemukan artikel seperti itu?
Tomislav Nakic-Alfirevic
4
@MaximilianSchulz: Tidak ada dunia yang sempurna, seperti yang mereka katakan ... Ini hanyalah salah satu pilihan untuk melakukannya.
carlspring