SlideShare a Scribd company logo
1 of 40
Download to read offline
Maven基礎
2013/9/30
株式会社アークシステム
瀧口 季男
Mavenって?
Apache Maven is a software project
management and comprehension tool.
Based on the concept of a project
object model (POM), Maven can
manage a project's build, reporting and
documentation from a central piece of
information.
http://maven.apache.org

上に書いてある通り、ソフトウェアプロジェ
クトの管理&支援ツールです。
Javaでコンパイル
~どうやるんだっけ?~
javacって、ありましたよね?
コンパイル?
javac -cp lib/foo.jar;lib/baa.jar;lib/poo.jar
-source 1.5 -target 1.5 -d classes
src/com/example/foo/*.java
src/com/example/baa/*.java

JAR?
jar cvf hoge.jar -C classes/ .

実行?
java –cp
classes;lib/foo.jar;lib/baa.jar;lib/poo.jar
com.example.foo.Main arg…

私には無理です。本当にありがとうございました。
Ant
~それは革命~
さよならシェルスクリプト
build.xmlを書いておけば、ant compile
でコンパイルできる!
<project name="hoge" default="jar" basedir=".">
<target name="compile">
<javac destdir="bin" encoding="UTF-8">
<src path="src" />
<classpath>
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
</target>
<target name="jar" depends="compile">
<jar jarfile="dist/hoge.jar" basedir="bin"></jar>
</target>
</project>
Antがあってよかったなって
Write once, build anywhere!
ビルドに必要なソース、依存JAR、
build.xmlとAntが一式あれば、Windowsで
もLinuxでもビルドできる!
パーキンソンの法則
仕事は、その遂行のために利
用できる時間をすべて埋める
ように拡大する
Antあるある
オレオレbuild.xml
「私のプロジェクトでは、モジュール名をソー
スディレクトリ名とする キリッ」

依存JARが増えると・・・
いちいちサイト巡ってダウンロードするのめん
どくせ (‘A`)
SCMにJARを全部コミットしたらサーバーのHDD
が・・・

あれ、デジャビュ?
このAnt task、夢の中で書いた、ような・・・
いちいちbuild.xml書くのめんどくせ (‘A`)
ヒックの法則
意思決定にかかる時間は、可
能な選択肢の数に依存する
じゃ、決めちゃおうぜ
プロジェクトのディレクトリ構成
決めても従わない奴ばかりだとしても、もし最初
からディレクトリ構成を作ってくれるとした
ら?

依存jarの解決
あちこち探してダウンロードするんじゃなくて、
1箇所に集まってたら?さらに、自動でダウン
ロードしてくれるとしたら?

ビルドの流れ
コンパイルして、テストして、ZIPで固めて・・
__ __
| ¥/ |__ _Apache__ ___
| |¥/| / _` ¥ V / -_) ' ¥ ~ intelligent projects ~
|_| |_¥__,_|¥_/¥___|_||_| v. 1.0.2

~ビルドツールのその先へ~
ディレクトリ構成決めました
これで行くから。
[basedir]
├ pom.xml
├ src
│ ├ main
│ │
├ java
│ │
└ resources
│ └ test
│
├ java
│
└ resources
└ target
├ classes
└ test-classes

src/main/webapp、src/siteなどもある
maven 1.0 の頃は、mainとtestが分かれてなかっ
た。時代の流れを感じるところ。
http://maven.apache.org/guides/introduction/introductio
n-to-the-standard-directory-layout.html
JARのリポジトリ作りました
セントラルリポジトリにたくさんのJARを集めて公
開するよ
個々のJARを識別する仕組みも考えたよ
groupId、artifactId、versionで特定するよ
依存するJARを設定ファイルに書いて明確化できるよ

ビルド時に自動で依存を解決するよ
リポジトリからJARをダウンロードするよ
ダウンロードしたJARがSCM管理下に入らないように、
こっそり別の場所に保存しておくよ

http://maven.apache.org/guides/introduction/introductio
n-to-repositories.html
ビルドの流れを決めました
Clean

Site

validate

pre-clean

pre-site

compile
Build Lifecycle

Default

clean

site

test

post-clean

post-site

package
integration
-test

verify
install
deploy

site-deploy

Mavenには3種類のライフサイク
ルがある
Defaultライフサイクルは、実際
もっと細かいフェーズに分かれ
ている(全部で23個!)

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
ここまでのまとめ
javacからAnt
ビルドの定型化、環境非依存化
開発が大規模化するにつれ、冗長なところ
が多くなった

AntからMaven
ビルドの普遍化、環境の統一化
Mavenがうごくしくみ
~Goal & Lifecycle~
Maven本体とゴール
Maven本体の機能
POM(後述)の解析
ライフサイクルの各フェーズに結びつい
たゴールの実行

ゴール
ビルドの個々のタスク。コンパイル、JAR
作成、ファイルのコピーなどなど。
ゴールは全てプラグインが提供する
Goalの実行
個々のプラグイン名:ゴール名で、1
個のゴールを実行する
compiler
:compile

> mvn

compile

Maven

dependency

resolve
copy
list

compiler

compile
testCompile

surefire

test

jar

jar
test-jar

pluginたち
Phaseの実行
ライフサイクル中の指定したPhaseま
で、各Phaseに紐付いたゴールを実行
する
各Phaseに結びつ
resolve
いたGoalを実行

> mvn
test

dependency

Maven
validate
compile
test

validate

copy
list

compiler

compile
testCompile

surefire

test

compile
test
package
・
・
・

jar

jar
test-jar
実行の仕方
mvn [options] [<goal(s)>] [<phase(s)>]

Goal
Mavenに実行させたいタスクの指定
[プラグイン名]:[ゴール名]で指定する
mvn compiler:compile
mvn jar:jar

Phase
ビルドライフサイクルをどのフェーズま
で実行するか、という指定
各フェーズには、複数のゴールが結びつ
いている
Mavenの設定
~POM~
POM “Project Object Model”
プロジェクト情報をXMLで記述する
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>hoge-project</artifactId>
<version>1.0.0</version>
<!-- その他色々な設定 -->
</project>

いくつか紹介しますが、詳しくはWeb
で!
http://maven.apache.org/pom.xml
dependencies
プロジェクト依存ライブラリの設定
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>hoge</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>…</dependency>
</dependencies>

groupId, artifactId, version
JARを一意に特定するキー
scope
いつ必要なのかを指定する
compile (デフォルト)
provided
runtime
test
system

ローカルに無ければ、自動でリポジトリからダ
ウンロードされる
Mavenのセントラルリポジトリ以外のリポジトリ
は repositories に設定する必要あり
build
ビルドに関する設定(プラグイン等)
<build>
<defaultGoal>validate</defaultGoal>
<resources>
<resource>…</resource>
</resources>
<plugins>
<plugin>…</plugin>
</plugins>
</build>

defaultGoal
goal/phase指定が無い場合に実行さ
れるgoal/phaseを指定する

resources
成果物に含める、含めないリソース
(*.properties, *.xml等) を設定する

plugins
ビルドに使用するプラグイン設定
プラグインの追加
phaseにgoalを結びつけ
プラグインの引数設定

ソースディレクトリ、ビルドしたclass
ファイルの出力先を変更することもでき
る
でも、基本的にやらない。
build - plugin
ビルドにプラグインを追加
<plugin>
<groupId />
<artifactId />
<version />
<configuration>…</configuration>
<executions>
<execution>
<id>taskname</id>
<phase>compile</phase>
<goals>
<goal>doTask</goal>
</goals>
<configuration>…</configuration>
</execution>
</executions>
</plugin>

groupId, artifactId, version
プラグインを特定するキー

configuration
プラグインの引数設定

execution
phaseにgoalを結びつける
phase
紐付け先のフェーズ

goal
フェーズで実行するプラグインのgoal
parent (Super POM)
親POMの設定
<parent>
<groupId>com.example</groupId>
<artifactId>hoge</artifactId>
<version>1.0.0</version>
<relativePath>…</relativePath>
</parent>

依存ライブラリのバージョン、ビルド時
のプラグイン設定などを書いた親POMを
引き継ぐことができる
build - pluginManagement
プラグインの一括管理
<pluginManagement>
<plugins>
<plugin>…</plugin>
</plugins>
</pluginManagement>

親POMに書いておけば、子モジュールに
引き継がれる
マルチモジュール構成で活躍
dependencyManagement
依存ライブラリの構成管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId />
<artifactId />
<version />
<scope />
</dependency>
<dependency>…</dependency>
</dependencies>
</dependencyManagement>

dependencyと同じ
JARを一意に特定するキー

アーティファクトの属性 (version, scope,
exclutions) を設定でき、dependenciesで個別に指
定する必要が無くなる
profile
環境に応じて設定を切り替えるしくみ
<profiles>
<profile>
<id>production</id>
<activation>…</activation>
<build>…</build>
<dependencies>…</dependencies>
</profile>
<profile>…</profile>
</profiles>

activation
プロファイルを有効化する条件を設定する

build
プロファイルごとのビルド設定

dependencies
プロファイルごとの依存関係

例えば
3つのprofile (本番, 保守, 開発) を用意し、DB接続設定
ファイルを切り替える
JDKのバージョンに応じたJARを生成するため、コンパ
イル対象とするソースファイルを差し替える
Mavenを使う人が知っておく
べき97のこと
M2_HOME
Mavenインストールディレクトリを指
す環境変数
Mavenの実行には、%M2_HOME%の設
定と、%M2_HOME%/bin をPATHに通
す必要がある
ローカルレポジトリ
Mavenが自動でダウンロードしたJAR
(依存関係、プラグイン)が格納され
るディレクトリのこと
[ユーザーのホームディレクトリ]/.m2
リポジトリのミラーを設定する
セントラルリポジトリにあるはずなの
にJARがダウンロードできない!
セントラルリポジトリが落ちてた
よ・・・

そんなときは
ホームディレクトリの.m2/settings.xmlで
ミラーを設定する <settings>
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
リポジトリを追加する
セントラルリポジトリに無いライブラ
リ(Seasar、JBoss、etc…)を利用す
る場合は、リポジトリの設定をPOMに
追加する
<repositories>
<repository>
<id>maven.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2</url>
</repository>
</repositories>
プラグインリポジトリを追加する
ビルドで使用するプラグインがセント
ラルリポジトリに存在しない場合は、
プラグインリポジトリの設定をPOMに
追加する
<pluginRepositories>
<pluginRepository>
<id>maven.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2</url>
</pluginRepository>
</pluginRepositories>

Maven 3 はリポジトリの解釈が厳密化され、
repositoriesからプラグインを解決しないよう
になった
良く使うフェーズ
clean

targetディレクトリを削除する。ソースから一部
のファイルを削除した等の理由でフルビルドした
いときに使う。

package

JAR等、最終成果物を生成する。POMを書く人は、
このフェーズでリリース物が出来るように設定す
るつもりで。

install
生成したJARをローカルリポジトリにコピーする。
当該プロジェクトを参照する他のプロジェクトか
ら、JARを利用できるようになる。
IDE と統合する
Eclipse
m2e
EclipseのMaven統合プラグイン
Indigo (3.7) から統合済み、Kepler (4.3) からはm2e-wtpも統合

Mavenに投資しているSonatypeが開発元

maven-eclipse-plugin
POMからEclipseの.projectと.classpathを生成する、
MavenのEclipse対応プラグイン
dependencyのscopeを解釈できないのでお勧めしない

NetBeans
最初からMaven統合済み

IntelliJ
たぶんイケる(誰か買ってください
テストをスキップする
もちろんそんなこと有り得ない訳ですが。
ソースをチェックアウトしてビルドしてみたら、
テストが通らない
テストが通らないのでJARができず、関連プロ
ジェクトが全部ビルドできない
テストが通ってなくてもいいから、とりあえず
JARが欲しい

そんなときは
mvn install -DskipTests

テストクラスのコンパイル自体できない?
mvn install -Dmaven.test.skip
残りの9xのこと
Maven2のTipsを集めるWiki
http://wiki.fdiary.net/maven2/
誰でも編集できるので、何かあったら書
きましょう

More Related Content

What's hot

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)Takanori Sejima
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...Yahoo!デベロッパーネットワーク
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリットFumito Mizuno
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクルHonMarkHunt
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaAmazon Web Services Japan
 

What's hot (20)

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon Athena
 

Similar to Maven基礎

Mavenへのはじめの一歩
Mavenへのはじめの一歩Mavenへのはじめの一歩
Mavenへのはじめの一歩祐理 大野
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)torutk
 
VisualVMの紹介
VisualVMの紹介VisualVMの紹介
VisualVMの紹介tattyamm
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜Nobuhide Watanabe
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門guestd4898b
 
thymeleafさいしょの一歩
thymeleafさいしょの一歩thymeleafさいしょの一歩
thymeleafさいしょの一歩Yuichi Hasegawa
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門tsukasamannen
 
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門ryoheiseki1
 
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月Takashi Someda
 
PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -Katsumi Onishi
 
Guavaの美味しい食べ方
Guavaの美味しい食べ方Guavaの美味しい食べ方
Guavaの美味しい食べ方Yousuke Matsumoto
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)masanori kataoka
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 

Similar to Maven基礎 (20)

NanoA
NanoANanoA
NanoA
 
Mavenへのはじめの一歩
Mavenへのはじめの一歩Mavenへのはじめの一歩
Mavenへのはじめの一歩
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
 
VisualVMの紹介
VisualVMの紹介VisualVMの紹介
VisualVMの紹介
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Maven2 plugin
Maven2 pluginMaven2 plugin
Maven2 plugin
 
Hello Java
Hello JavaHello Java
Hello Java
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門
 
thymeleafさいしょの一歩
thymeleafさいしょの一歩thymeleafさいしょの一歩
thymeleafさいしょの一歩
 
Devsumi2008
Devsumi2008Devsumi2008
Devsumi2008
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
 
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -
 
Guavaの美味しい食べ方
Guavaの美味しい食べ方Guavaの美味しい食べ方
Guavaの美味しい食べ方
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Maven基礎