Mai mult
Cum de a adăuga locale fișierele jar la un proiect Maven?
Cum adaug locale fișierele jar (nu fac încă parte din Maven repository) direct în proiectul meu's biblioteca de surse?
1038
27
Puteți adăuga locale dependențe direct (după cum sa menționat în https://stackoverflow.com/questions/4491199/build-maven-project-with-propriatery-libraries-included/4491343#4491343) astfel:
Montați vasul în local Maven depozit, după cum urmează:
În cazul în care fiecare se referă la:
<calea-de-fișier>
: calea către fișierul pentru a încărca e.g →c:\kaptcha-2.3.jar
<grup-id>
: grupul care dosarul ar trebui să fie înregistrate sub e.g →com.google.codul
<artefact id->
: artefact nume pentru fișier e.g →kaptcha
<versiunea>
: versiunea fișierului e.g →2.3
<ambalare>
: ambalajul de fișierul de exemplu → "jar"Referință
În primul rând, aș dori să dau credit pentru acest răspuns la un anonim Stack Overflow utilizator - sunt destul de sigur că am'am văzut un răspuns similar aici înainte, dar acum nu pot găsi.
Cea mai bună opțiune pentru a avea locală fișiere JAR ca o dependență este de a crea un local Maven depozit. Astfel de depozit este nimic mai mult decât o buna structura de directoare cu pom fișierele în ea.
Pentru exemplul meu: Am proiectul meu pe
${master_project}
locația și subproject1 e pe${master_project}/${subproject1}
.Apoi am crea un Maven depozit în:
${master_project}/locale-maven-repo
.În pom fișier în subproject1 situat la
${master_project}/${subproject1}/pom.xml
, depozitul trebuie să fie specificate care ar lua calea de fișier ca un parametru URL:Dependența poate fi specificat ca pentru orice alt depozit. Acest lucru face pom depozit independent. De exemplu, odată dorit BORCAN este disponibil în Maven central, trebuie doar să-l ștergeți de pe repo locală și va fi scos din default repo.
Ultimul, dar nu cel mai puțin lucru să faceți este să adăugați fișierul JAR la depozit local folosind -DlocalRepositoryPath comuta astfel:
Odată ce fișierul JAR este instalat, Maven repo poate fi angajat la un depozit de cod, și întregul set-up este independent de sistem. (Exemplu de lucru în GitHub).
Sunt de acord că având în Borcane angajat la codul sursă repo nu este o practică bună, dar în viața reală, rapid și murdar soluții sunt, uneori, mai bine decât un plin cu sufletul la gură Nexus repo pentru a găzdui un BORCAN pe care le pot publica.
Creați un folder nou, sa's spun `local maven-repo la rădăcina proiect Maven.
Trebuie doar să adăugați un local repo în interiorul tău
<proiect>
a tapom.xml
:Apoi pentru fiecare externe borcan vrei pentru a instala, du-te la rădăcina proiectului si executa:
Am'd ca astfel de soluție utilizat
maven-instalare-plug
in pom fișier:În acest caz, puteți efectua
mvn inițializa și borcan vor fi instalate în local maven repo. Acum acest borcan este disponibil în orice maven pas pe acest aparat (nu uitați să includeți această dependență și orice alte maven dependență în pom cu
<dependență></dependență> tag). Este de asemenea posibil de a lega borcan instala nuinițializa
pas, dar orice alt pas vă place.Da , poti avea dar nu e idee buna.
În loc de a instala toate aceste borcane pentru maven repos
De Asemenea, A Se Vedea
O modalitate este de a încărca propria ta Maven depozit manager (cum ar fi Nexus). L's de bune practici pentru a avea un depozit manager, oricum.
Un alt mod frumos de am'am vazut recent este de a include Maven a Instala Plugin-ul în a construi ciclul de viață: Vă declar în POM pentru a instala fișierele la depozit local. L's un pic, dar deasupra capului mic și nici un manual pas implicate.
http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
Într-adevăr rapid și murdar mod este de a indica un fișier local:
Adăugați propriile locale BORCAN în POM fișier și de a folosi că, în maven construi.
De exemplu:
Apoi adăugați-l la POM așa:
Desigur, puteți adăuga borcane la acel folder. Dar poate că nu este ceea ce vrei pentru a atinge...
Dacă aveți nevoie de aceste borcane pentru compilare, verificați această întrebare legate de: https://stackoverflow.com/questions/364114/can-i-add-jars-to-maven-2-build-classpath-without-installing-them/
De asemenea, înainte de oricine sugerează că, NU utilizați domeniul de aplicare a sistemului.
linie de comandă :
Un alt caz interesant este atunci când doriți să aveți în proiect privat maven borcane. Poate doriți pentru a menține capacitățile de Maven pentru a rezolva dependențele tranzitive. Soluția este destul de ușor.
E. g. să presupunem că doriți să importați dependență
Doar du-te la .m2/repository și veți vedea următorul folder
com/mycompany/myproject/1.2.3
Copia totul în libs folder (din nou, inclusiv folderele de sub .m2/repository) și ați terminat.
Cred că o soluție mai bună pentru această problemă este de a utiliza maven-instala-plugin pentru a instala automat fișierele la instalare. Acest lucru este cum l-am înființat pentru proiectul meu.
În primul rând, adăugați calea (în cazul în care vă magazin local .borcane) ca o proprietate.
Apoi, sub "plugin" adauga un plugin pentru a instala borcane atunci când compilarea.
În cele din urmă, în dependențe, puteți adăuga borcane
Prin înființarea astfel de proiect, proiectul va continua să construiască chiar și atunci când vă duceți-l la un alt calculator (având în vedere că are toate fișierele jar în calea specificată de proprietate la nivel local.sdk`).
Pentru groupId` utilizați un nume unic, doar pentru a vă asigura că nu există conflicte.
Acum când mvn instala " sau " mvn test locale borcane vor fi adăugate automat.
Modul preferat ar fi să vă creați propriul depozit la distanță.
A se vedea aici pentru detalii cu privire la cum să o facă. Avea o privire de la '* Încărcarea de la un Depozit la Distanță**' secțiune.
De asemenea, să ia o privire la...
Maven Dependențe. Acest lucru este implicit, dar am'am găsit în unele cazuri în mod explicit stabilirea domeniului de aplicare, de asemenea, Maven pentru a găsi bibliotecile locale în depozit local.
Vreau să împărtășesc un cod în cazul în care puteți încărca un folder plin de borcane. L's util atunci când un furnizor nu't au un registru public și aveți nevoie pentru a adăuga o mulțime de biblioteci manual. Am'am decis să construiască o .bat în loc de a apela direct la maven, deoarece ar putea fi din erori de Memorie. Acesta a fost pregătit pentru un mediu windows, dar este ușor să se adapteze la sistemul de OPERARE linux:
După ce executați această principal din orice IDE, executați update_repo_maven.bat.
Aceasta este o scurtă sintaxa pentru versiuni mai noi:
Acesta funcționează atunci când vasul a fost construit de către Apache Maven - cel mai frecvent caz. Apoi se'll conține o pom.xml într-un subfolder de META-INF, care va fi citit în mod implicit.
Sursa: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
Rețineți că aceasta NU este neapărat o idee bună să utilizați un local repo. Dacă acest proiect este împărtășită cu alții, atunci toată lumea va avea probleme și întrebări când nu - 't de lucru, și la borcan câștigat't fi disponibil chiar și în sursa sistem de control!
Deși comună repo este cel mai bun răspuns, dacă nu puteți face acest lucru pentru un motiv oarecare, atunci încorporarea borcan este mai bun decât un repo locală. Locale-doar repo conținutul poate provoca o mulțime de probleme, mai ales de-a lungul timpului.
Pe depozit local puteți instala jar prin emiterea de comenzi
Urmați acest util link pentru a face același lucru din mkyoung's site-ul web. Puteți verifica, de asemenea, maven ghid pentru aceleași