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
270
依存ライブラリはどこに?
Shigeki Shoji
March 21, 2024
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
Instructional Designer
takesection
0
100
Zero to Hero
takesection
0
180
Fargateを使った研修の話
takesection
0
220
20240730_kanjava.pdf
takesection
0
130
JavaのJCP会員になろう
takesection
0
89
JAWS-UG Okayama 2024 LT
takesection
0
80
IaCツールのいろいろ
takesection
0
360
GitHub Actions Runner Controller
takesection
0
340
Amazon RDS for Db2
takesection
0
78
Other Decks in Technology
See All in Technology
Agile TPIを活用した品質改善事例
tomasagi
0
470
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
1.5k
IAMのマニアックな話 2025 ~40分バージョン ~
nrinetcom
PRO
8
1k
ペアプログラミングにQAが加わった!職能を超えたモブプログラミングの事例と学び
tonionagauzzi
1
150
マルチアカウント管理で必須!AWS Organizationsの機能とユースケース解説
nrinetcom
PRO
1
110
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
590
コンソールで学ぶ!AWS CodePipelineの機能とオプション
umekou
3
130
AWS CDK コントリビュート はじめの一歩
yendoooo
1
130
Symfony in 2025: Scaling to 0
fabpot
2
260
小さく始めるDevOps 内製化支援から見えたDevOpsの始め方 / 20250317 Ken Takayanagi
shift_evolve
1
120
TopAppBar Composableをカスタムする
hunachi
0
160
Re:VIEWで書いた「Compose で Android の edge-to-edge に対応する」をRoo Codeで発表資料にしてもらった
tomoya0x00
0
220
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Embracing the Ebb and Flow
colly
85
4.6k
It's Worth the Effort
3n
184
28k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
What's in a price? How to price your products and services
michaelherold
245
12k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Cult of Friendly URLs
andyhume
78
6.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Producing Creativity
orderedlist
PRO
344
40k
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 ありがとうございました