Utilizați pluginul de asamblare maven în locul pluginului de umbră · Numărul nr. 133

Comentarii

Copiați linkul Citat răspuns

maven

eduramiba comentat 6 martie 2018

Întrucât utilizarea pluginului maven shade pentru a crea un vas de grăsime este cunoscut ca fiind problematic, deoarece poate suprascrie fișiere amestecând borcane (https://product.hubspot.com/blog/the-fault-in-our-jars-why-we- stop-building-fat-borcane), folosim în prezent cu succes o modalitate mai sigură de a implementa lambdas cu dependențe: un singur zip cu toate borcanele într-un folder lib (așa cum este documentat în https://docs.aws.amazon.com/en_en /lambda/latest/dg/create-deployment-pkg-zip-java.html)

Exemplu de cod al modului în care o facem în maven:

Și fișierul bin.xml:

Textul a fost actualizat cu succes, dar s-au întâlnit aceste erori:

sapessi comentat 6 martie 2018

Vă mulțumim pentru feedback-ul @eduramiba - M-am întrebat dacă este timpul să construiți un plugin maven specific Lambda pentru a împacheta o aplicație și pentru a slăbi cât mai mult posibil borna de ieșire. Voi păstra acest lucru deschis și o voi gândi bine. Cu siguranță voi analiza adăugarea pluginului de asamblare ca alternativă la eșantioanele și arhetipurile noastre.

omenirea comentat 7 martie 2018

Este bine să știți acest mod de a-l împacheta. Mulțumesc @eduramiba !

Iuchar comentat 21 iunie 2018

@eduramiba Vă mulțumim! Cum ați exclude tomcatul încorporat în acest caz?

eduramiba comentat 21 iunie 2018

Dar dacă dependența dvs. a oferit domeniul de aplicare, aceasta nu va fi copiată deoarece includeScope este timpul de execuție.

eduramiba comentat 21 iunie 2018 •

De asemenea, intrările manifestului jar nu sunt de fapt necesare în timpul rulării lambda, deoarece vor încărca toate borcanele în folderul lib.

Iuchar comentat 21 iunie 2018 •

Am schimbat abordarea dvs. puțin și funcționează și (trebuie doar să configurați pluginul de asamblare în acest fel):

eugenevd comentat 26 iunie 2018

Am încercat ambele exemple sugerate furnizate.
Primele rezultă în propriul meu cod (Handler) care trebuie adăugat în propriul borcan, apoi, împreună cu celelalte borcane de dependență, este introdus în „lib /” direct în interiorul fișierului zip.
lib/myHandler.jar
lib/dep1.jar

Al doilea exemplu pune toate dependențele în lib/din nou, dar la rădăcina zip structura directorului;
de exemplu:
com/company/Handler.class