(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Að meðhöndla mörg umhverfi fyrir mörg verkefni á einni vél? - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2022-12-01
Hugbúnaðarþróun

Að meðhöndla mörg umhverfi fyrir mörg verkefni á einni vél?

Bartłomiej Kuczyński

Er til gullinmeðal til að takast á við mörg umhverfi fyrir mikinn fjölda á einni vél? Java-sérfræðingur okkar, Bartłomiej, veit svarið!

Hér er tómt.

Skoðum dæmigerðan vinnustað í hugbúnaðarfyrirtæki. Þú átt nokkra viðskiptavini sem hafa mismunandi umhverfi. Sumir kjósa MySQL, aðrir kjósa Postgres. Ein útgáfa af forritinu þínu þarf Java 11 og önnur Java 17. Framhliðin þarf npm 12 eða 16 vegna þess að þú notar mismunandi útgáfur af hornlaga. Að lokum ertu kominn með þrívíddar fylki sem inniheldur allar mögulegar samsetningar af öllum útgáfum gagnagrunnanna þinna, bakenda og framenda. Hljómar illa, en einn daginn segir yfirmaðurinn þinn…

teiknimyndasögur með yfirmanni

Rætur fjölalheimsumhverfis

Ástandið sem lýst er hér að ofan er ekki óalgengt. Flutningur milli tungumála- eða rammasetningarútgáfa, uppfærslur á gagnagrunnum eða einfaldlega mismunandi kröfur frá viðskiptavinum geta snúið öllum stillingum á hvolf. Við ættum að hafa lausn sem hjálpar okkur stjórna þeim breytingum, einn sem samræmist nokkrum forsendum og/eða kröfum og/eða markmiðum:

  • auðvelt í notkun – eitt skipun til að breyta stillingu eða útgáfu,
  • ríkur bókasafn – ætti að styðja margar tæknir og “hluti” (bókasöfn, rammasöfn, forrit),
  • útvíkkanlegur – þú ættir að bjóða upp á möguleika á að bæta við viðbótunum þínum.

Í þessari grein mun ég einbeita mér að þremur sviðum. Fyrsta sviðið eru verkfæri fyrir Java og JVM. Annað sviðið eru almenn verkfæri. Þriðja sviðið er hvernig á að nota dökker til að ná markmiðum okkar.

​

Ég er Java og ég vinn á JVM.

Þegar þú ert a Java-forritari eða, almennt séð, vinnur þú með JVM-tækni, þá geturðu notað SDKMAN!. Þetta er mjög gott og auðvelt í notkun tæki sem styður mörg bókasöfn, rammasöfn og forritunarmál.

Uppsetningarferlið af SDKMAN! Það er nokkuð einfalt. Þú þarft að keyra:

curl -s "https://get.sdkman.io" | bashHljóðskrift

og svo

heimild "$HOME/.sdkman/bin/sdkman-init.sh"HljóðskriftHljóðskrift

Nú geturðu stjórnað þínum Java, Stigi og Maven útgáfur.

Útgáfustjórnun – dæmi

Í þessu dæmi munum við setja upp og uppfæra útgáfu nokkurra verkfæra. Þetta er aðeins lítill hluti af tiltækum verkfærum.

Uppsetning

Segjum að nýja þitt verkefni notar Java 17. Þú átt engan Java Útgáfa er uppsett. Þú vilt setja hana upp og auk þess bæta við Maven Daemon-tóli til að hraða byggingum. Þess vegna þarftu einnig að setja upp Maven. Til þess þarftu að keyra þrjá einfaldar skipanir:

$ sdk install java 17-open

$ sdk install maven 3.8.4

$ sdk install mvnd 0.7.1

Í lok uppsetningar hvers tóls verður þér spurt hvort þú viljir gera það að sjálfgefnu:

Viltu að Java 17-open sé stillt sem sjálfgefið? (Já/Nei):Hljóðskrift

Þetta er mikilvægt þegar þú setur upp nýja útgáfu af bókasafni eða forritunarmáli, því SDKMAN! mun gera þá sjálfgefnu útgáfu að almennri útgáfu fyrir alla skeljar núverandi notanda.

Athuga útgáfur og uppfæra

Frá tíma til tíma þarf SDKMAN! að uppfæra vísitölur. Á meðan þessu stendur gætirðu fengið skilaboð um að til séu nýjar útgáfur af verkfærum sem þú notar. Við getum athugað hvaða útgáfur eru í boði með því að slá inn sdk ls. Fyrir sdk ls maven:

Fáanlegar Maven-útgáfur

================================================================================

 3.8.6 3.3.3 

 3.8.5 3.3.1                                                 

3.8.4 3.2.5 

 3.8.3 3.2.3 

 3.8.2 3.2.2                                                 

    3.8.1 3.2.1 

 3.6.3 3.1.1                                                 

    3.6.2 3.1.0 

 3.6.1 3.0.5 

 3.6.0 3.0.4                                                 

    3.5.4 

 3.5.3 

 3.5.2                                                                     

    3.5.0 

 3.3.9 

​

================================================================================

staðbundin útgáfa

í notkun

================================================================================

Eins og sjá má hér að ofan hefur Maven nýrri útgáfu en þá sem við notum. Það sama gildir um mvnd (0.8.2) og Java (19-open). Uppfærum allt. Til þess þurfum við bara að kalla á install-skipunina, en að þessu sinni notum við enga útgáfuákvörðun:

$ sdk install maven

$ sdk install mvnd

$ sdk install java

En eitthvað fór úrskeiðis. Maven og mvnd hafa réttar útgáfur, en Java er með útgáfu 17.0.5-tem. Það er vegna þess að “nýjasta” útgáfan af tólinu er stjórnuð af seljanda þess, ekki af staðbundna SDKMAN! Hver er þessi seljandi? Seljandi í SDKMAN! er sá sem getur gefið út útgáfu. En segjum að við loksins setjum upp 19-opið, og við gerðum það að sjálfgefinni stillingu, en af einhverjum ástæðum þurfum við að nota 17-opið.

Staðbundnar útgáfur og útgáfustjórnun á hverjum enda

​
Við getum stillt a staðlað útgáfa af tóli sem er almenn fyrir öll verkefni og vinnustöðvar. En þegar við þurfum ákveðna útgáfu, höfum við tvær leiðir til þess. Sú fyrsta er að nota sdk nota skipun í hvert skipti sem við viljum nota ákveðna útgáfu af tóli í núverandi skjálóni. Annað er að útbúa lista yfir útgáfur í a .sdkmanrc skrá sem er geymd með verkefninu.

Þó að fyrsta valið sé ætlað einnota notkun, er hitt hannað til að vinna með teams og deila stillingum á milli lið meðlimir.

Kostir og gallar SDKMAN!

SDKMAN! er mjög auðvelt í notkun og hefur ríka safn af studdum verkfærum, rammasetningum og forritunarmálum. Það virkar á Linux, MacOS og Windows. Á hinn bóginn er þetta tól JVM-miðað og krefst samþykkis höfundar til að vera birgir. Auk þess er vélvirkjunin af .sdkmanrc er mjög slæmt og gæti verulega hægjað á ferlinu við að skipta um möppur.

Mig langar að nota mörg önnur tungumál

Ef þú þarft að nota mörg tungumál og verkfæri, ættir þú að kíkja á asdf. Þetta tæki beinist að “hágæða” verkfærum. Í SDKMAN! finnur þú mörg Java-sértæk verkfæri, eins og Bpipe eða Znai, en asdf býður upp á mun fleiri verkfæri sem eru ekki eins sértæk. Auðvitað skarast sum þessara verkfæra, t.d. Java, Tomcat eða mvnd eru fáanleg í báðum.

Þegar þú vilt nota asdf, þú þarft að hafa gít og krulla uppsett. Eftir það, þú bara:

`git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.2`Hljóðskrift

og bættu þessum línum við ~/.bashrc file:

. $HOME/.asdf/asdf.sh.

 $HOME/.asdf/completions/asdf.bash

Nú geturðu sett upp viðbætur og verkfæri í uppáhaldsútgáfunum þínum.

Stjórnun byggð á viðbótum

Ólíkt SDKMAN!, asdf notar viðbætur til að stjórna verkfærum. Svo áður en þú getur sett upp verkfæri þarftu að setja upp viðbót. Skulum snúa aftur að dæmaverkefninu okkar og reyna að stilla umhverfið með asadfsdf.

Fyrst þurfum við að setja upp viðbætur:

asdf plugin add java

asdf plugin add maven

asdf plugin add mvnd

Þá getum við sett upp verkfærin okkar:

asdf install java openjdk-17

asdf install maven 3.8.4

asdf install mvnd 0.7.1

Og enn og aftur, ólíkt SDKMAN!, asdf breytir engu í umhverfi okkar. Þegar við reynum að nota java fáum við villuskilaboð eins og:

Engin útgáfa er stillt fyrir Java-skipunina

Íhugaðu að bæta einni af eftirfarandi útgáfum við í stillingarskránni þinni í ~/.tool-versions

java openjdk-17

Við þurfum að búa til skrá .verkfærisútgáfur í heimamöppunni til að stjórna sjálfgefnum útgáfum.

Staðbundnar og alþjóðlegar útgáfur

Uppfæra hugbúnaðarútgáfur með asdf Það er nokkuð einfalt. Við setjum bara upp nýja útgáfu. Þar sem þetta ferli hefur engin áhrif á umhverfið getum við gert það hvenær sem er og hvar sem er í skráarkerfinu. Þegar við viljum nota ákveðna útgáfu af einhverjum hugbúnaði þurfum við að búa til í verkefnismöppunni a .verkfærisútgáfur Skrá sem gæti verið deilt á milli meðlima team. Mundu að þú þarft að tryggja að allir meðlimir team hafi asdf og viðbætur hafa verið settar upp. Lista yfir viðbætur má finna hér.

Útgáfuárekstrar

asdf Stuðningurinn nær ekki aðeins til forritunarmála, ramma og verkfæra eins og vim eða kubernetess. Hann nær einnig til gagnagrunnanna. Í slíku tilfelli gætum við sett upp margar útgáfur af t.d. Postgres, en aðeins ein þeirra getur verið í gangi. Það er vegna þess að asdf Keyrir skipanir beint á stýrikerfinu þínu án aðskilnaðarlags. Það veldur vandamálum eins og “tengi þegar í notkun” og árekstrum um auðlindir.

Kostir og gallar

asdf er mjög gott tæki ef þú vilt vinna í fjöltyngdu umhverfi. Það styður mörg verkfæri, forritunarmál og rammasöfn. Arkitektúrinn byggir á viðbótum sem gera það mjög auðvelt að stækka það. Hins vegar krefjast sum verkfærin í bókasafninu frekari vinnu við uppsetningu til að tryggja alla nauðsynlega forsendur. asdf Virkar ekki á Windows, jafnvel á WSL.

Að lokum en ekki síst – Docker

Þegar ég tala um höfnardeiluna hér að ofan, vita margir ykkar lausnina.

Docker gæti hjálpað okkur í sumum tilvikum. Ég nefni þetta af skyldu, því þetta tól er svo stórt og flókið að við getum ekki fjallað um það í einni grein.

Saman með Docker ættum við að nota a docker-compose tæki sem gefur okkur möguleika á að samræma umhverfi með mörgum gámum.

Kostir og gallar Docker

Docker hjálpar okkur að stjórna verkfærum sem þurfa ákveðnar auðlindir, eins og tengi eða skrár. Það aðskilur eintök í gámum og gefur okkur fulla stjórn á þeim. Þrátt fyrir það er Docker tæki sem bætir mikilli flækju við vinnuumhverfi okkar og getur verið vandamál í sumum tilvikum. Eitt af þessum tilvikum um notkun Docker í prófi er lýst í einu af fyrri grein.

Að draga saman

Ég veit að ég lýsti ekki öllum þeim verkfærum sem hægt er að nota til að stjórna útgáfum verkfæra. Það eru mun fleiri slík verkfæri, svo sem jUmhverfi sem gæti komið í stað SDKMAN,

eða Ekki málið sem við getum notað til að stjórna npm eða RVM fyrir Rúbín. Ég einbeitti mér að verkfærum sem ég prófaði á vígvellinum og get mælt með fyrir alla.

Tengdar greinar

Hugbúnaðarþróun

9 villur sem ber að forðast við forritun í Java

Hvaða villur ætti að forðast við forritun í Java? Í eftirfarandi kafla svörum við þessari spurningu.

The Codest
Rafal Sawicki Java-forritari
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Hvernig getur Java stutt við fyrirtækið þitt?

Kynntu þér hvernig Java og Java Virtual Machine (JVM) styðja stöðugan og stækkanlegan viðskiptahugbúnað og hvenær skynsamlegt er að velja Java.

Bartlomiej Kuczynski
Hugbúnaðarþróun

Prófunarílát – Hvernig má einfalda prófanir?

Ertu að leita að leið til að gera prófanir auðveldari? Við erum hér fyrir þig! Skoðaðu eftirfarandi grein og lærðu hvernig þú getur gert það mögulegt.

Bartlomiej Kuczynski
Hugbúnaðarþróun

Javascript-verkfæri í aðgerð

Uppgötvaðu nokkur JavaScript-tólin til að bæta forritunarhæfileika þína. Kynntu þér nánar ESLint, Prettier og Husky!

The Codest
Reda Salmi React forritari
Hugbúnaðarþróun

Ósamhliða og einþráða JavaScript?

JavaScript er einþráða forritunarmál og jafnframt óblokkandi, ósamhverft og samhliða. Í þessari grein verður útskýrt hvernig það gerist.

Lukasz Kolko

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic