Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
依存ライブラリはどこに?
Search
Shigeki Shoji
March 21, 2024
Technology
0
140
依存ライブラリはどこに?
Shigeki Shoji
March 21, 2024
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
GitHub Actions Runner Controller
takesection
0
150
Amazon RDS for Db2
takesection
0
27
らいよんで、とうだんしたよ、えるてぃーで
takesection
0
40
Java in containers and serverless
takesection
0
230
2023 ANGEL Dojo LT
takesection
0
160
Mameyose 2023-06-01
takesection
0
27
AWS Lambda with Scala
takesection
0
480
Introduction to functional programming
takesection
0
180
JVMアセンブラ言語
takesection
0
140
Other Decks in Technology
See All in Technology
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
110
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
390
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
290
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
650
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
580
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
180
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
1
2.8k
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
4
1.1k
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
980
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
4
590
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
140
VS CodeでAWSを操作しよう
smt7174
9
1.8k
Featured
See All Featured
Docker and Python
trallard
35
2.7k
Done Done
chrislema
178
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
4 Signs Your Business is Dying
shpigford
176
21k
Raft: Consensus for Rubyists
vanstee
133
6.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Into the Great Unknown - MozCon
thekraken
11
1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Rails Girls Zürich Keynote
gr2m
91
13k
Six Lessons from altMBA
skipperchong
22
3k
Transcript
依存ライブラリはどこに? 2024年3⽉21⽇ Shigeki Shoji
庄司重樹 受賞歴 AWS 2023 Japan Top Engineers 資格 AWS認定12冠 (All
Certifications) Professional Scrum Product Owner I Professional Scrum Master I Professional Scrum Developer I コミュニティ AWS Community Builders program、関ジャバ、JJUG、Scala関⻄、もめんと会他 2
とあるJavaアプリケーションの構成 3
依存ライブラリをどこから取得しよう? 4
ライブラリ公開元から直接 • グループ名はDNSドメイン名を逆向きにしたものと推測してみ る… 5
Maven等が登場する前 • ソースコードを公開先からダウンロードして取り込む • ftp等で公開先からダウンロードしてクラスパスに追加して取り 込む • 依存ライブラリが別のライブラリに依存していると、対応バー ジョンの不⼀致等で管理がとにかく⼤変 •
開発者が複数いると、ある⼈の環境では動作するが、別の⼈の 環境では動作しないということが増⼤ 6
いいアイデアない? 7
Hubのようなものがあれば • 個別に公開先からではなく、⼀元管理されたところがあれば 8
CI/CDを⽀えるインフラに成⻑ MavenやGradle等を使って⾃動的に依存ライブラリをダウン ロードして、アプリケーションコードをコンパイル、それをパッ ケージングしたアーティファクトをリポジトリにアップロード 9
Maven Centralってどこにあるの? • https://repo1.maven.org/maven2 10
ライブラリの検索 • https://central.sonatype.com/ 11
セマンティックバージョニング • 詳細はここで • 簡単にいうと、後⽅互換性の有無、バグ修正のみの場合などに、どの 部分のバージョンを変更するかの仕様 • Node.js で使⽤される npm
ではこのセマンティックバージョニングに 則った形式のみ受け⼊れられている(でも肝⼼の後⽅互換性がないの にマイナーバージョンのみやパッチバージョンの変更がされているラ イブラリがある) 12
いいね!社内で開発したライブラリも管 理していい? 13
Maven Centralはパブリックリポジトリ • Maven Centralからライブラリのダウンロードに認証不要 • アップロードする場合は、認証と公開鍵⽅式の署名が必要 • 組織内で作成したライブラリを世界中で使ってもらいたい場合 はMaven
Centralに登録できる 14
プライベートなライブラリの管理 15
Inhouse Repository • オンプレミス • Sonatype Nexus • JFrog Artifactory
• クラウド • AWS CodeArtifact • GitHub Packages • GitLab Packages and Registries 16
アーティファクト管理ツールの特徴 • 最近のアーティファクト管理ツールは脆弱性のチェック機能が ある • Java以外のプロトコル (Go、.NET、Rust、Python、Node.js、 Docker、Linux(rpm)、Linux(apt) その他) にも対応している
17
おわりに • 社内の再利⽤可能なアーティファクトを Inhouse Repository を活⽤していきましょう • アーティファクト管理ツールは単なるファイルシステムとは違 うということを理解しましょう 18
19 ありがとうございました