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
LT Slide 2025-04-22
takesection
0
110
Instructional Designer
takesection
0
110
Zero to Hero
takesection
0
180
Fargateを使った研修の話
takesection
0
230
20240730_kanjava.pdf
takesection
0
140
JavaのJCP会員になろう
takesection
0
91
JAWS-UG Okayama 2024 LT
takesection
0
86
IaCツールのいろいろ
takesection
0
370
GitHub Actions Runner Controller
takesection
0
360
Other Decks in Technology
See All in Technology
DjangoCon Europe 2025 Keynote - Django for Data Science
wsvincent
0
370
SREからゼロイチプロダクト開発へ ー越境する打席の立ち方と期待への応え方ー / Product Engineering Night #8
itkq
2
1.1k
生成AIによるCloud Native基盤構築の可能性と実践的ガードレールの敷設について
nwiizo
7
1.4k
LINE 購物幕後推手
line_developers_tw
PRO
0
310
Новые мапы в Go. Вова Марунин, Clatch, МТС
lamodatech
0
1.5k
2025-04-14 Data & Analytics 井戸端会議 Multi tenant log platform with Iceberg
kamijin_fanta
0
170
読んで学ぶ Amplify Gen2 / Amplify と CDK の関係を紐解く #jawsug_tokyo
tacck
PRO
1
290
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
230
ドキュメント管理の理想と現実
kazuhe
3
310
Running JavaScript within Ruby
hmsk
3
430
GraphQLを活用したリアーキテクチャに対応するSLI/Oの再設計
coconala_engineer
0
190
今日からはじめるプラットフォームエンジニアリング
jacopen
8
1.9k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
523
40k
Practical Orchestrator
shlominoach
187
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
It's Worth the Effort
3n
184
28k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Invisible Side of Design
smashingmag
299
50k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
590
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 ありがとうございました