Upgrade to Pro — share decks privately, control downloads, hide ads and more …

まだ間に合うMaven(再)入門 #jjug

yusuke
December 11, 2020

まだ間に合うMaven(再)入門 #jjug

2020年12月11日 開催 JJUGナイトセミナー「Maven / Gradle入門」のMavenパートです。
https://jjug.doorkeeper.jp/events/114832

動画はこちら:
https://youtu.be/R5gWwOwo4iQ

yusuke

December 11, 2020
Tweet

More Decks by yusuke

Other Decks in Technology

Transcript

  1. ࢁຊϢʔεέ!ZVTVLF
    ·ͩؒʹ߹͏.BWFO ࠶
    ೖ໳

    View Slide

  2. ຊ೔࿩͢͜ͱ
    w +BWBͷϏϧυํࣜͷྺ࢙
    w .BWFOͷجຊ
    w .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    w ґଘϥΠϒϥϦͷ௥Ճ
    w .BWFOʹΑΔϏϧυ
    w .BWFOͷ࠷৽৘ใ

    View Slide

  3. ຊ೔࿩͞ͳ͍͜ͱ
    w ݸผͷ*%&ͷৄࡉͳར༻ํ๏
    w $*πʔϧ΍ύοέʔδαʔϏε࿈ܞͱ͍ͬͨൃలతͳ.BWFOͷ࢖͍ํ

    View Slide

  4. ϏϧυճΓͰσϕϩού͕ߦ͍͍ͨ͜ͱ
    w ίϯύΠϧ
    w ςετ
    w ύοέʔδ KBSXBSFBSEPDLFSΠϝʔδ࡞੒

    w ੒Ռ෺Λڞ༗ ଞͷσϕϩούɺ$*؀ڥɺύοέʔδϦϙδτϦ


    View Slide

  5. +BWBͷϏϧυํࣜͷྺ࢙

    View Slide

  6. +BWBͷϏϧυํࣜͷྺ࢙
    खಈͰίϚϯυϥΠϯϏϧυ
    w ຖճख࡞ۀ
    w ཤྺ͚͕ͩཔΓ
    w ଞͷਓ͕࠶ݱग़དྷͳ͍

    View Slide

  7. +BWBͷϏϧυํࣜͷྺ࢙
    όονϑΝΠϧ CBU
    ɺγΣϧεΫϦϓτ TI

    w ϏϧυεΫϦϓτΛڞ༗Ͱ͖Δ
    w ϓϥοτϑΥʔϜʹґଘ͢Δ

    View Slide

  8. +BWBͷϏϧυํࣜͷྺ࢙
    *%&ͰϏϧυ DMBTTQBUI

    w *%&ʹґଘ͢Δ
    w $*αʔόͰϏϧυ͕ͮ͠Β͍

    View Slide

  9. +BWBͷϏϧυํࣜͷྺ࢙
    "OU
    w YNMϑΝΠϧͰϏϧυΛఆٛ
    w ๛෋ͳϓϥάΠϯ

    IUUQTBOUBQBDIFPSH

    View Slide

  10. աڈͷϏϧυํࣜͷ໰୊఺
    w ϏϧυͰ͖Δ؀ڥ͕ݶఆ͞ΕΔ 04ɺ*%&ͳͲ

    w खଓ͖ܕͰεΫϦϓτͷهड़ྔ͕ଟ͘ɺϝϯςφϯε͕೉͍͠
    w σΟϨΫτϦߏ଄͕ϓϩδΣΫτຖʹ·ͪ·ͪ
    TSDTPVSDFσΟϨΫτϦʁMJCMJCTσΟϨΫτϦʁ
    w ιʔείʔυͱҰॹʹϥΠϒϥϦΛ7$4ʹอ؅͕ͪ͠
    ग़ॴɺόʔδϣϯෆ໌ͷKBSϑΝΠϧ

    View Slide

  11. .BWFO(SBEMFΛ࢖͏ͱ
    w ΫϩεϓϥοτϑΥʔϜͰϏϧυՄೳ
    w ଟ͕͘σϑΥϧτͰܾ·ΔɺએݴతʹϏϧυΛఆٛՄೳ
    w ๛෋ͳϓϥάΠϯ
    w ʮґଘʯΛએݴ͢Ε͹ϥΠϒϥϦΛࣗಈతʹऔಘ

    View Slide

  12. .BWFO(SBEMFΛ࢖͏ͱ
    w ΫϩεϓϥοτϑΥʔϜͰϏϧυՄೳ
    w ଟ͕͘σϑΥϧτͰܾ·ΔɺએݴతʹϏϧυΛఆٛՄೳ
    w ๛෋ͳϓϥάΠϯ
    w ʮґଘʯΛએݴ͢Ε͹ϥΠϒϥϦΛࣗಈతʹऔಘ

    21ੈل͸Maven͔GradleΛ࢖͍·͠ΐ͏

    View Slide

  13. .BWFOͷجຊ

    View Slide

  14. .BWFOͱ͸
    w ΫϩεϓϥοτϑΥʔϜͷ+BWBϏϧυπʔϧ
    w

    View Slide

  15. .BWFOϓϩδΣΫτͷσΟϨΫτϦߏ੒

    View Slide

  16. .BWFOϓϩδΣΫτͷσΟϨΫτϦߏ੒

    Javaιʔείʔυ
    Javaςετίʔυ
    Ϧιʔε
    (ϓϩύςΟϑΝΠϧͳͲ)
    ϏϧυఆٛϑΝΠϧ

    View Slide

  17. ͋ΕɺϥΠϒϥϦ͸Ͳ͜ʁ
    MJCσΟϨΫτϦ MJCTσΟϨΫτϦʁ

    View Slide

  18. ϥΠϒϥϦ͸ϓϩδΣΫτσΟϨΫτϦʹஔ͔ͳ͍
    w ར༻͢Δ ґଘ͢Δ
    ϥΠϒϥϦ͸QPNYNMʹهࡌ͢Δ͚ͩ

    View Slide

  19. .BWFOϓϩδΣΫτʹ͓͚Δґଘ
    ϓϩδΣΫτ͕࢖͏ ґଘ͢Δ
    ϥΠϒϥϦΛࢦఆ
    w (SPVQ*EPSHKVOJUKVQJUFSͳͲ
    w "SUJGBDU*EKVOJUKVQJUFSBQJͳͲ
    w 7FSTJPOͳͲ

    View Slide

  20. .BWFOηϯτϥϧϦϙδτϦ
    w +BWBͷσϑΝΫτελϯμʔυϦϙδτϦ
    IUUQTSFQPNBWFOPSHNBWFO
    w ϝδϟʔͳϥΠϒϥϦ͕΄΅ἧ͍ͬͯΔ
    IUUQTSFQPNBWFOPSHNBWFOPSHKVOJUKVQJUFSKVOJUKVQJUFS
    IUUQTSFQPNBWFOPSHNBWFOMPHKMPHK
    IUUQTSFQPNBWFOPSHNBWFOPSHUXJUUFSKUXJUUFSKDPSF
    w ηϯτϥϧϦϙδτϦҎ֎΋ࢦఆՄೳ

    View Slide

  21. .BWFOϓϩδΣΫτͷϥΠϒϥϦ
    w ϗʔϜσΟϨΫτϦNSFQPTJUPSZҎԼʹอ؅
    w μ΢ϯϩʔυͨ͠ϥΠϒϥϦΛΩϟογϡ
    w 7$4ʹϥΠϒϥϦͷίϛοτෆཁ
    w QPNYNMͰʮґଘ EFQFOEFODZ
    ʯΛࢦఆ

    View Slide

  22. .BWFOͷΠϯετʔϧํ๏

    brew install mv
    n


    sdk install maven 3.6.
    3


    View Slide

  23. .BWFOͷΠϯετʔϧํ๏
    wεςοϓ
    wεςοϓ
    wεςοϓ

    View Slide

  24. .BWFOͷΠϯετʔϧํ๏
    wεςοϓ޷Έͷ*%&ΛΠϯετʔϧ͢Δ
    wεςοϓ
    wεςοϓ

    View Slide

  25. .BWFOͷΠϯετʔϧํ๏
    wεςοϓ޷Έͷ*%&ΛΠϯετʔϧ͢Δ
    wεςοϓऴΘΓ
    wεςοϓ

    View Slide

  26. .BWFOϓϩδΣΫτͷ࡞੒ํ๏

    View Slide

  27. .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    ίϚϯυϥΠϯ͔Β

    mvn archetype:generate
    \


    -DgroupId=com.samuraism.app
    \


    -DartifactId=my-app
    \


    -DarchetypeArtifactId=maven-archetype-quickstart
    \


    -DarchetypeVersion=RELEASE
    \


    -DinteractiveMode=false
    BSDIFUZQF"SUJGBDUϓϩδΣΫτςϯϓϨʔτ
    %BSDIFUZQF"SUJGBDU*E

    View Slide

  28. .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    &DMJQTF͔Β


    View Slide

  29. .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    &DMJQTF͔Β


    View Slide

  30. .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    *OUFMMJ+*%&"͔Β

    View Slide

  31. .BWFOϓϩδΣΫτͷ࡞੒ํ๏
    /FU#FBOT͔Β

    View Slide

  32. ґଘϥΠϒϥϦͷ௥Ճ

    View Slide

  33. ґଘϥΠϒϥϦͷ௥Ճ
    QPNYNM͔Β
    w EFQFOEFODJFTཁૉԼʹEFQFOEFODZཁૉͰࢦఆ

    View Slide

  34. ґଘϥΠϒϥϦͷ௥Ճ
    *%&͔Β *OUFMMJ+*%&"/FU#FBOT

    w ࢖͍͍ͨγϯϘϧ໊Λॻ͍ͯ"MU&OUFS

    View Slide

  35. ґଘϥΠϒϥϦͷ௥Ճ
    *%&͔Β &DMJQTF

    w QPNYNMΛӈΫϦοΫɺ"EE%FQFOEFODZ

    View Slide

  36. ґଘϥΠϒϥϦͷείʔϓ
    w σϑΥϧτ͸DPNQJMF
    w ςετέʔεͰ͔͠࢖Θͳ͍΋ͷ͸TDPQFUFTUTDPQF
    w ΞϓϦέʔγϣϯαʔό౳Ͱఏڙ͞ΕΔ΋ͷ͸TDPQFQSPWJEFETDPQF

    View Slide

  37. ϥΠϒϥϦͷݕࡧ
    IUUQTTFBSDINBWFOPSH

    View Slide

  38. .BWFOʹΑΔϏϧυ

    View Slide

  39. .BWFOʹΑΔίϯύΠϧ
    ίϚϯυϥΠϯ͔Β

    % mvn compile

    View Slide

  40. .BWFOʹΑΔίϯύΠϧ
    *%&͔Β

    View Slide

  41. NWODPNQJMFͰߦΘΕΔओͳ͜ͱ
    ґଘϥΠϒϥϦΛ ඞཁʹԠͯ͡
    μ΢ϯϩʔυ
    NBJO಺ͷKBWBΛίϯύΠϧͯ͠UBSHFUDMBTTFTʹDMBTTϑΝΠϧΛੜ੒
    NBJOSFTPVSDFTσΟϨΫτϦҎԼͷϑΝΠϧΛUBSHFUDMBTTFTʹίϐʔ

    View Slide

  42. .BWFOʹΑΔςετ

    View Slide

  43. .BWFOʹΑΔςετ
    ίϚϯυϥΠϯ͔Β

    % mvn test
    *%&͔Β

    View Slide

  44. NWOUFTUͰߦΘΕΔओͳ͜ͱ
    ίϚϯυϥΠϯ͔Β
    NWODPNQJMF
    UFTU಺ͷKBWBΛίϯύΠϧͯ͠UBSHFUUFTUDMBTTFTʹDMBTTϑΝΠϧΛੜ੒
    UFTUSFTPVSDFTҎԼͷϑΝΠϧΛUBSHFUUFTUDMBTTFTʹίϐʔ
    ϓϩδΣΫτ಺ͷςετέʔεΛ࣮ߦ

    View Slide

  45. +6OJUΛ࢖͍ͬͯΔ৔߹
    σϑΥϧτͰ͸ςετ͕࣮ߦ͞Εͳ͍ ೥݄೔ݱࡏ

    ࠷৽TVSF
    f
    i
    SFϏϧυϓϥάΠϯΛ໌ࣔతʹࢦఆ




    maven-surefire-plugin
    2.22.2



    View Slide

  46. .BWFOʹΑΔύοέʔδ

    View Slide

  47. NWOQBDLBHFͰߦΘΕΔओͳ͜ͱ
    ίϚϯυϥΠϯ͔Β
    NWODPNQJMF
    NWOUFTU
    ςετ͕શͯ੒ޭ͢Ε͹
    UBSHFUʹKBSϑΝΠϧΛ࡞੒

    View Slide

  48. .BWFOʹΑΔΠϯετʔϧ

    View Slide

  49. NWOJOTUBMMͰߦΘΕΔओͳ͜ͱ
    ίϚϯυϥΠϯ͔Β
    NWODPNQJMF
    NWOUFTU
    ςετ͕શͯ੒ޭ͢Ε͹
    NWOQBDLBHF
    ϗʔϜNSFQPTJUPSZσΟϨΫτϦʹ੒Ռ෺Λίϐʔ

    View Slide

  50. ஌͓ͬͯ͘ͱศར
    w NWODMFBO
    ੜ੒͞ΕͨϑΝΠϧΛશͯ࡟আ͢Δ
    w %NBWFOUFTUTLJQUSVF
    ςετΛεΩοϓ͢Δ
    w NWOEFQFOEFODZUSFF
    ґଘϥΠϒϥϦΛҰཡදࣔ
    w NWOEFQMPZ
    σϓϩΠ ੒Ռ෺Λڞ༗


    % mvn -Dmaven.test.skip=true install

    View Slide

  51. ༷ʑͳύοέʔδϦϙδτϦʹσϓϩΠՄೳ

    +FU#SBJOT4QBDF
    (JU)VC
    +'SPH

    View Slide

  52. ͲͷόʔδϣϯΛ࢖͏΂͖ʁ
    w +BWBҎ߱.BWFO
    w +BWB.BWFO
    w +BWB.BWFO
    w +BWB·ͨ͸ͦΕҎલ.BWFOԽͱಉ࣌ʹ+BWB ·ͨ͸+BWB
    ΁Ҏ߱

    ࢀߟ.BWFO3FMFBTFT)JTUPSZ
    IUUQTNBWFOBQBDIFPSHEPDTIJTUPSZIUNM

    View Slide

  53. .BWFOͰԿ͕มΘΔʁ
    w ϚϧνϞδϡʔϧϏϧυͷվળ
    w SFTVNFͰࣦഊͨ͠Ϟδϡʔϧ͔ΒϏϧυ
    w NWOKFUUZSVOͳͲͰඞཁͳϞδϡʔϧΛϏϧυͯ͘͠ΕΔ
    w ਌ϞδϡʔϧΛࢦఆ͢Ε͹શࢠϞδϡʔϧΛϏϧυ
    NWOQMFYUFOTJPOTHSQDDPEFHFO FYUFOTJPOTHSQDEFQMPZNFOUʜʜˠNWOQMFYUFOTJPOTHSQD
    w .BWFO8SBQQFS NWOX
    ͕ඪ४ʹ
    w ࣗಈόʔδϣχϯά ਌Ϟδϡʔϧͷόʔδϣϯ͕ࢦఆෆཁʹ


    ࢀߟ8IBUT/FXJO.BWFO
    IUUQTNBBSUFONVMEFSTJUXIBUTOFXJONBWFO

    View Slide

  54. .BWFOͷ։ൃঢ়گΛ஌Δ

    IUUQTJTTVFTBQBDIFPSHKJSBQSPKFDUT./(WFSTJPOT

    View Slide

  55. ·ͱΊ
    w TIɺCBUɺCVJMEYNM "OU
    ͰϏϧυ͍ͯ͠Δ৔߹ɺࠓ೔͔Β࢝ΊΑ͏
    w .BWFO (SBEMF
    w ಋೖͨ͠Β௅ઓ͠Α͏
    w $*
    w 5%%
    w ύοέʔδϦϙδτϦ

    View Slide