Enviar pesquisa
Carregar
Mavenへのはじめの一歩
•
5 gostaram
•
3,611 visualizações
祐理 大野
Seguir
Apache Mavenについて。 社内勉強会用に作成した資料です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 14
Baixar agora
Baixar para ler offline
Recomendados
Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
Jenkins+Maven活用術
Jenkins+Maven活用術
cynipe cynipe
Maven基礎
Maven基礎
Toshio Takiguchi
Web技術勉強会 第30回
Web技術勉強会 第30回
龍一 田中
Apache Archiva を試す
Apache Archiva を試す
bouzuya
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
Recomendados
Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
Jenkins+Maven活用術
Jenkins+Maven活用術
cynipe cynipe
Maven基礎
Maven基礎
Toshio Takiguchi
Web技術勉強会 第30回
Web技術勉強会 第30回
龍一 田中
Apache Archiva を試す
Apache Archiva を試す
bouzuya
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
大規模な負荷でもドキドキしない為のJava EE
大規模な負荷でもドキドキしない為のJava EE
Taiichilow Nagase
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
Satoshi Akama
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
jenkinsで遊ぶ
jenkinsで遊ぶ
(^-^) togakushi
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
Jmeter20120421
Jmeter20120421
hatakyo
Hello Java
Hello Java
Chihiro Ito
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
maven build certificaton
maven build certificaton
Vskills
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
Atsushi Suzuki
Mais conteúdo relacionado
Mais procurados
大規模な負荷でもドキドキしない為のJava EE
大規模な負荷でもドキドキしない為のJava EE
Taiichilow Nagase
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
Satoshi Akama
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
jenkinsで遊ぶ
jenkinsで遊ぶ
(^-^) togakushi
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
Jmeter20120421
Jmeter20120421
hatakyo
Hello Java
Hello Java
Chihiro Ito
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
Mais procurados
(20)
大規模な負荷でもドキドキしない為のJava EE
大規模な負荷でもドキドキしない為のJava EE
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
Gradle布教活動
Gradle布教活動
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
jenkinsで遊ぶ
jenkinsで遊ぶ
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Jenkins と groovy
Jenkins と groovy
Gradleどうでしょう
Gradleどうでしょう
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Laravel5を使って開発してみた
Laravel5を使って開発してみた
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Jmeter20120421
Jmeter20120421
Hello Java
Hello Java
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Destaque
maven build certificaton
maven build certificaton
Vskills
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
Atsushi Suzuki
はじめてのSpring Boot
はじめてのSpring Boot
なべ
Maven Introduction
Maven Introduction
Sandeep Chawla
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
Destaque
(7)
maven build certificaton
maven build certificaton
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
はじめてのSpring Boot
はじめてのSpring Boot
Maven Introduction
Maven Introduction
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
いつやるの?Git入門
いつやるの?Git入門
Semelhante a Mavenへのはじめの一歩
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
torutk
Cve 2013-0422
Cve 2013-0422
abend_cve_9999_0001
Nseg20120929
Nseg20120929
hiro345
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
Maven tips
Maven tips
Hideaki Ishijima
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
Tomohiro Ohtake
Maven2 plugin
Maven2 plugin
Funato Takashi
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
React Native GUIDE
React Native GUIDE
dcubeio
第5回勉強会
第5回勉強会
Mugen Fujii
Module classloading
Module classloading
nekop
Web技術勉強会 20110723
Web技術勉強会 20110723
龍一 田中
Clojure+Leiningenで3分Hadoop
Clojure+Leiningenで3分Hadoop
Toshiaki Maki
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部
haruki ueno
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
fd0
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
Semelhante a Mavenへのはじめの一歩
(20)
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
Cve 2013-0422
Cve 2013-0422
Nseg20120929
Nseg20120929
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Maven tips
Maven tips
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
Maven2 plugin
Maven2 plugin
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
React Native GUIDE
React Native GUIDE
第5回勉強会
第5回勉強会
Module classloading
Module classloading
Web技術勉強会 20110723
Web技術勉強会 20110723
Clojure+Leiningenで3分Hadoop
Clojure+Leiningenで3分Hadoop
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
クラスローダーについて
クラスローダーについて
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mavenへのはじめの一歩
1.
社内勉強会資料 へのはじめの一歩 OhnoYuri 13年6月3日月曜日
2.
あなたの身の回りで起きていること アプリケーションの動かし方(コンパイル、テスト、実行)が作った人にしかわからない 関連するライブラリがたくさんあり、良くわからないっ! 手順書がないっ!! Apache Mavenでビルドの見通しを良くしよう 13年6月3日月曜日
3.
Javaのビルドツールの移り変わり APACHE MAVENで誰でも達人 ・コマンドラインからコンパ イルし、実行する ・-classpathで外部jarやクラス を含める ・build.xmlにビルド方法を記 述する ・必要なライブラリについて いっしょに配布する ・pom.xmlより依存するライブ ラリを記述する ・必要なライブラリはインター ネット越しに取得される $ javac
Hello.java $ java Hello 手順書による 「一子相伝」 属人化の排除 ライブラリ依存関係の 自動解決 めいゔぃん (達人という意味) 13年6月3日月曜日
4.
Mavenが現れた背景 JakartaTurbinプロジェクトにおいて、関連するライブラリやbuild.xmlの管理が煩雑になった ため。 Mavenの一連のライフサイクル フェーズ(いくつかのゴールをまとめた単位)でビルドを実行 •plugin ; Mavenの機能をインストール •dependency
; プロジェクトに必要なライブラリをインストール APACHE MAVANについて ローカルリポジトリ compile, test, packageを経てできたjarをインストール セントラルリポジトリ, サードパーティリポジトリ 関連するjarをインストール install = compile + test + package + ローカルリポジトリにデプロイ install = compile + test + package + ローカルリポジトリにデプロイ installpackagetestcompileclean install = compile + test + package + ローカルレポジトリにデプロイ package = compile + test + パッケージング test = compile + 単体試験の実行 compile = コンパイル 13年6月3日月曜日
5.
HELLO MAVEN $ mvn
--version Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java... Apache Maven 3.0.5 (省略) $ echo “export JAVA_HOME=/pass/to/your/JAVA_HOME >> ~/.bashrc $ source ~/.bashrc $ echo $JAVA_HOME $ mvn archetype:generate ¥ -DgroupId=com.mycompany.app ¥ -DartifactId=FirstApp ¥ -Dversion=1.0.0-SNAPSHOT ¥ -DarchetypeArtifactId=maven-archetype-quickstart ¥ -DinteractiveMode=false プロジェクトを作った組織を識別するID プロジェクト名 プロジェクトのバージョン名 プロジェクトのひな形タイプ 対話的にプロジェクトをつくらない 1. Mavenがインストールされていることを確認する 2. Mavenで新規プロジェクトを作成する 13年6月3日月曜日
6.
ディレクトリ構成 ディレクトリ構成を確認する プロパティファイルのディレクトリとして、main/resourcesおよびtest/resourcesを追加する FirstApp ├── pom.xml ビルド時の依存関係や生成した成果物の扱いなどを記載 └──
src ├── main ソースコードを格納するターゲットディレクトリ │ └── java │ └── com パッケージ空間 │ └── mycompany │ └── app │ └── App.java └── test テストコードを格納するターゲットディレクトリ └── java └── com └── mycompany └── app └── AppTest.java 13年6月3日月曜日
7.
パッキングしてみよう パッケージしてみる mvn packageでコンパイル、テスト、パッケージといった一連のプロセスが実行される $ cd
FirstApp $ mvn clean package …(省略)… ------------------------------------------------------- T E ST S ------------------------------------------------------- Running com.mycompany.app.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0,Time elapsed: 0.015 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ FirstApp --- [INFO] Building jar: /Users/hermesian/dev/java/FirstApp/target/FirstApp-1.0.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO]Total time: 4.248s [INFO] Finished at:Wed May 01 13:48:59 JST 2013 [INFO] Final Memory: 18M/140M [INFO] ------------------------------------------------------------------------ 13年6月3日月曜日
8.
ECLIPSEプロジェクトにしてみよう $ ls -
l FirstApp/target total 8 -rw-r--r-- 1 hermesian staff 2304 5 1 13:48 FirstApp-1.0.0-SNAPSHOT.jar drwxr-xr-x 3 hermesian staff 102 5 1 13:48 classes drwxr-xr-x 3 hermesian staff 102 5 1 13:48 maven-archiver drwxr-xr-x 2 hermesian staff 68 5 1 13:48 surefire drwxr-xr-x 4 hermesian staff 136 5 1 13:48 surefire-reports drwxr-xr-x 3 hermesian staff 102 5 1 13:48 test-classes $ cd FirstApp/target $ java -cp target/FirstApp-1.0.0-SNAPSHOT.jar com.mycompany.app.App Hello World! $ cd FirstApp $ mvn eclipse:eclipse 4. 作成したプロジェクトをEclipseプロジェクにする •これにより.classpathや.projectが作成されるので、Eclipseから既存Mavenプロジェクトとしてインポートすれば良い 3. パッケージしたjarの動作を確認する 13年6月3日月曜日
9.
MAVENから実行してみよう 5. mainメソッドが記載されているクラスを-Dexec.mainClassで指定する $ mvn
clena compile exec:java -Dexec.mainClass=com.mycompany.app.App [INFO] Scanning for projects... ...(省略)... Hello World! [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO]Total time: 1.254s [INFO] Finished at: Sat May 18 15:39:01 JST 2013 [INFO] Final Memory: 5M/81M [INFO] ------------------------------------------------------------------------ 6. 毎回引数で面倒なのでpom.xmlで設定する • MavenにExec Mavenプラグインを追加し、実行する •Exec Maven Plugin : http://mojo.codehaus.org/exec-maven-plugin/ 13年6月3日月曜日
10.
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.mycompany.app.App</mainClass> </configuration> </plugin> </plugins> $ mvn exec:java (結果は先ほどと同様なので省略) • pom.xmlに以下を追記する • exec:javaで実行できる ゴールとしてexec:javaを使用 mainメソッドのあるクラスを指定 13年6月3日月曜日
11.
今度はWEBアプリケーション 7. archetypeArtifactIdとして、maven-archetype-webappを指定する $ echo
“export JAVA_HOME=/pass/to/your/JAVA_HOME >> ~/.bashrc $ source ~/.bashrc $ echo $JAVA_HOME $ mvn archetype:generate ¥ -DgroupId=com.mycompany.app ¥ -DartifactId=FirstWebApp ¥ -Dversion=1.0.0-SNAPSHOT ¥ -DarchetypeArtifactId=maven-archetype-webapp ¥ -DinteractiveMode=false archetypeArtifactIdを指定 8. できたプロジェクトのディレクトリ構成を確認しよう 足りないディレクトリは足すこと(src/main/java, src/test/java, src/test/resources FirstWebApp ├── pom.xml └── src └── main ├── resources └── webapp ├── WEB-INF │ └── web.xml └── index.jsp 13年6月3日月曜日
12.
APACHETOMCATの管理者を設定する 9.ApacheTomcat Maven Pluginを使って、Mavenにwarファイルをデプロイする <tomcat-users> <role
rolename=”manager-gui”/> <role rolename=”manager-script”/> <user username=”admin” password=”admin00” roles=”manager-gui,manager-script”/> </tomcat-users> adminというユーザを作る •Tomcat7 (今回は7.0.40を使用)で管理ユーザを作る $CATALINA_HOME/conf/tomcat-user.xml •Tomcatを再起動し、管理ページに入れることを確認する ブラウザからhttp://localhost:8080/managerに接続する 13年6月3日月曜日
13.
APACHETOMCATにデプロイする 10. Mavenの設定(settings.xml)にTomcatの管理者の設定を追記する <settings> <servers> <server> <id>tomcat7</id> <username>admin</username> <password>admin00</password> </server> </servers> </settings> “tomcat7”という識別子を設定 ~/.m2/settings.xml 11. pom.xmlにTomcatへのダプロイを設定する <build> <finalName>FirstWebApp</finalName> <plugins> <plugin>
<groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.0</version> <configuration> <server>tomcat7</server> <url>http://localhost:8080/manager/text</url> <path>/${project.build.finalName}</path> <update>true</update> </configuration> </plugin> </plugins> </build> “tomcat7”という識別子を設定 デプロイは/manager/text/deploy?path=/FirstWebAppで指定 .warの名前を指定(上部の<finalName>で指定されている) <update>で更新を指定していないと再度デプロイできない 13年6月3日月曜日
14.
デプロイされていることを確認しよう 12. MavenからTomcatにデプロイする $ mvn
tomcat7:deploy ...(省略)... [INFO] tomcatManager status code:200, ReasonPhrase:OK [INFO] OK - コン????ストパス /FirstWebApp でアプリケーションを??備しました [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO]Total time: 4.130s [INFO] Finished at: Sun May 19 20:17:57 JST 2013 [INFO] Final Memory: 9M/81M [INFO] ------------------------------------------------------------------------ Tomcatに配備完了(文字化けしちゃってる...) 13.デプロイされていることを確認しよう ブラウザからhttp://localhost:8080/managerに接続する Fin. 13年6月3日月曜日
Baixar agora