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
250
依存ライブラリはどこに?
Shigeki Shoji
March 21, 2024
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
Zero to Hero
takesection
0
130
Fargateを使った研修の話
takesection
0
190
20240730_kanjava.pdf
takesection
0
110
JavaのJCP会員になろう
takesection
0
77
JAWS-UG Okayama 2024 LT
takesection
0
53
IaCツールのいろいろ
takesection
0
330
GitHub Actions Runner Controller
takesection
0
300
Amazon RDS for Db2
takesection
0
58
らいよんで、とうだんしたよ、えるてぃーで
takesection
0
78
Other Decks in Technology
See All in Technology
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
MLOps の現場から
asei
6
640
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
520
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
190
非機能品質を作り込むための実践アーキテクチャ
knih
3
1.1k
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
550
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
Featured
See All Featured
Making Projects Easy
brettharned
116
5.9k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Code Reviewing Like a Champion
maltzj
520
39k
Thoughts on Productivity
jonyablonski
67
4.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Mobile First: as difficult as doing things right
swwweet
222
9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
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 ありがとうございました