Enviar pesquisa
Carregar
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
•
12 gostaram
•
7,878 visualizações
Y Watanabe
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 26
Baixar agora
Baixar para ler offline
Recomendados
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
Maven基礎
Maven基礎
Toshio Takiguchi
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe
Apache Archiva を試す
Apache Archiva を試す
bouzuya
Web技術勉強会 第30回
Web技術勉強会 第30回
龍一 田中
Web技術勉強会 第31回
Web技術勉強会 第31回
龍一 田中
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
Mavenへのはじめの一歩
Mavenへのはじめの一歩
祐理 大野
Mais conteúdo relacionado
Mais procurados
chat bot framework for Java8
chat bot framework for Java8
masahitojp
Jenkins+Maven活用術
Jenkins+Maven活用術
cynipe cynipe
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
Takuma Morikawa
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
Cpi mega mix
Cpi mega mix
Ryuji Egashira
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
charsbar
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作った
Tetsuya Tatsumi
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
Mais procurados
(20)
chat bot framework for Java8
chat bot framework for Java8
Jenkins+Maven活用術
Jenkins+Maven活用術
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Cpi mega mix
Cpi mega mix
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
laravel x モバイルアプリ
laravel x モバイルアプリ
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
capybara で快適なテスト生活を
capybara で快適なテスト生活を
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作った
Gradleどうでしょう
Gradleどうでしょう
Gradle布教活動
Gradle布教活動
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Semelhante a 20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境について
goritto
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
Hironao Sekine
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
Harmoware-VIS Tutorial
Harmoware-VIS Tutorial
Nobuo Kawaguchi
OpenShift のある生活
OpenShift のある生活
Yoshimasa Tanabe
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
Yoshiharu Hashimoto
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
Yukihiko SAWANOBORI
DebianとWordPressでハッピーになろう!
DebianとWordPressでハッピーになろう!
Jun Nogata
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
Yukihiko SAWANOBORI
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
Nakazawa Yuichi
Devsumi2008
Devsumi2008
Agata Toshikata
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
VirtualTech Japan Inc.
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
mookjp
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
Kanako Kobayashi
割と新し目の Open shift origin で作る自宅 paas 作成記
割と新し目の Open shift origin で作る自宅 paas 作成記
Hara Yoshihiko
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
Masashi Shinbara
Hello Java
Hello Java
Chihiro Ito
Semelhante a 20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
(20)
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境について
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Harmoware-VIS Tutorial
Harmoware-VIS Tutorial
OpenShift のある生活
OpenShift のある生活
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
DebianとWordPressでハッピーになろう!
DebianとWordPressでハッピーになろう!
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
Devsumi2008
Devsumi2008
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
割と新し目の Open shift origin で作る自宅 paas 作成記
割と新し目の Open shift origin で作る自宅 paas 作成記
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
Hello Java
Hello Java
Mais de Y Watanabe
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
properties, yaml, and me
properties, yaml, and me
Y Watanabe
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Y Watanabe
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Y Watanabe
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Mais de Y Watanabe
(16)
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
properties, yaml, and me
properties, yaml, and me
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Último
2024 04 minnanoito
2024 04 minnanoito
arts yokohama
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
Shumpei Kishi
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
arts yokohama
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
Ayachika Kitazaki
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
ssuser539845
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
Tetsuya Nihonmatsu
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
arts yokohama
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
Sadao Tokuyama
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
Matsushita Laboratory
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
ssuser370dd7
2024 03 CTEA
2024 03 CTEA
arts yokohama
Último
(12)
2024 04 minnanoito
2024 04 minnanoito
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
2024 03 CTEA
2024 03 CTEA
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
1.
これであなたもOSS開発者! Mavenセントラルリポジトリに 自作ライブラリをUPするときの いろんなコツの話 @nabedge = 渡辺
祐 http://mixer2.org/ 2014/2/15 2014/4/5 第5回 #渋谷java
2.
CM 2
3.
Mixer2というライブラリを作ってる者です http://mixer2.org JavaでWebアプリを作るための テンプレートエンジン 3
4.
CMおわり 4
5.
今日のおはなし • Mixer2というテンプレートエンジンって すごい便利なんだぜ • 例えばMixer2みたいなJavaライブラリ (本体は
*.jar ファイル一つ)を Mavenセントラルリポジトリに登録する にはどんなふうにしたらいいの? 5
6.
つまりこんなふうに 6 http://repo1.maven.org/maven2/org/mixer2/mixer2/1.2.22
7.
論より証拠! いまこの場で、 Mixer2-1.2.xxの mavenセントラルリポジトリへの リリース作業を開始します。 7 デモ
8.
さっきのデモみたいな流れに至るまでのコツ • pom.xmlを調整する • <groupId>,
<artifactId>,親pomの指定 • GPG鍵とmaven-gpg-plugin • *.md5/*.sha1チェックサムはmaven-install-plugin • maven-sources-plugin, maven-javadoc-plugin • アップロード権限をもらうための申請 • Mixer2の場合はどうだった? • ビルドとリリースに関する3つのポイント • 仮想OS + Jenkinsを使う • maven-release-pluginのことを忘れる • 細かいバージョン番号を自分で決めない 8 今日の話は ここだけ 各自ググる あるいは mixer2 のpomを参考に。
9.
• pom.xmlを調整する • <groupId>,
<artifactId>,親pomの指定 • GPG鍵とmaven-gpg-plugin • *.md5, *.sha1 チェックサムはmaven-install-plugin • maven-souces-plugin, maven-javadoc-plugin • アップロード権限をもらうための申請 • Mixer2の場合はどうだった? • ビルドとリリースに関する3つのポイント • 仮想OS + Jenkinsを使う • maven-release-pluginのことを忘れる • 細かいバージョン番号を自分で決めない 9
10.
アップロード権限をもらう 1. 大きなプロジェクトでは自前のリポジトリサーバをセントラル リポジトリサーバが直接rsyncしてくれる。 例: Apache
Commons Project 例: Spring Framework Project 2. 小さいプロジェクトの場合は http://oss.sonatype.org に直 接アップする。 1. 申請すれば<groupId>ごとにアップロード権限をくれる。 例: アカウント”nabedge”は<groupId>org.mxier2</ groupId>の配下ならどんなartifactでも登録可能 2. とりあえず本家の解説を一生懸命読みましょう。 https://docs.sonatype.org/display/Repository/Sonatype +OSS+Maven+Repository+Usage+Guide 10
11.
Mixer2の場合はどうだった? 1. mixer2.org というドメイン名を取得 2.
http://mixer2.org/ にあらかじめmaven siteで作ったページ を用意。もちろん<groupId>はorg.mixer2 3. 自分のメールアドレスでgpg鍵つくって鍵サーバに登録 4. pom.xmlを調整 5. mvn deploy するとステージングリポジトリにUPされる 6. 3で使ったメールアドレスでSonatypeのJIRAにアカウント登 録&チケットを作成。 7. すんなりリポジトリへのアクセス権をくれた。 8. NEXUSにJIRAアカウントでログインし、ステージング状態 のartifactをリリースするとセントラルリポジトリへ反映される ※以降のリリースでは5と8の作業だけでよい。 11
12.
• pom.xmlを調整する • <groupId>,
<artifactId>,親pomの指定 • GPG鍵とmaven-gpg-plugin • *.md5, *.sha1 チェックサムはmaven-install-plugin • maven-souces-plugin, maven-javadoc-plugin • アップロード権限をもらうための申請 • Mixer2の場合はどうだった? • ビルドとリリースに関する3つのポイント • 仮想OS + Jenkinsを使う • maven-release-pluginのことを忘れる • 細かいバージョン番号を自分で決めない 12
13.
なぜ仮想OS + Jenkinsでやるのか 1.
ビルド&リリースに使うコマンドやその実行手順を間違えない 2. ビルドした記録と成果物を保存しやすい 3. 異なるJDK/JREでのmvn testを実行しやすい • mixer2はJRE同梱のJAXB実装に依存している。 Java6とJava7とでJAXB実装のバージョンが微妙に異なる。 • なので、Java7でのmvn testもいつでもやれるようになってる。 4. 確実に環境を一定に保てる 5. バックアップしやすい • 「ソースはgithubに入ってるから大丈夫」では甘い。 • JDK/JRE環境、gpg署名用の秘密鍵、ビルドジョブの設定(≒ビルド とリリースの手順そのもの)、過去の成果物、etcetc… • ↑うっかり失うと再構築が面倒くさいという意味でダメージ大 • 仮想OSのイメージファイルで丸ごとバックアップしてしまえ! 13
14.
• pom.xmlを調整する • <groupId>,
<artifactId>,親pomの指定 • GPG鍵とmaven-gpg-plugin • *.md5, *.sha1 チェックサムはmaven-install-plugin • maven-souces-plugin, maven-javadoc-plugin • アップロード権限をもらうための申請 • Mixer2の場合はどうだった? • ビルドとリリースに関する3つのポイント • 仮想OS + Jenkinsを使う • maven-release-pluginのことを忘れる • 細かいバージョン番号を自分で決めない 14
15.
maven-release-pluginのことを忘れる 1. mvn release:prepare
release:perform のように簡単 なコマンド一発にできるが、pom.xmlがややこしくなり がち。 2. どうせjenkinsを使うのだから、pom.xmlにややこしい設 定を書く代わりにビルドジョブ上にUNIXコマンドを書く ようにするほうがわかりやすい&メンテしやすい。 3. 「maven-release-pluginは、-SNAPSHOTなversion指 定が自分自身や依存先に指定されていないかまで チェックしてくれるんだぜ!」 →そういうのも最近はセントラルリポジトリ(のステージ ング環境)にUPする段階で自動チェックしてくれるから 必ずしも自分でやらなくてもいい。 15
16.
• 「maven-release-pluginを使うな」 とは言ってません。 • 人間、慣れている方法が一番! 16
17.
• pom.xmlを調整する • <groupId>,
<artifactId>,親pomの指定 • GPG鍵とmaven-gpg-plugin • *.md5, *.sha1 チェックサムはmaven-install-plugin • maven-souces-plugin, maven-javadoc-plugin • アップロード権限をもらうための申請 • Mixer2の場合はどうだった? • ビルドとリリースに関する3つのポイント • 仮想OS + Jenkinsを使う • maven-release-pluginのことを忘れる • 細かいバージョン番号を自分で決めない 17
18.
よくあるバージョン番号の考え方 trunk/1.0.0-SNAPSHOT ↓ リリース→ tags/1.0.0 trunk/1.0.1-SNAPSHOT ↓ リリース→ tags/1.0.1 trunk/1.0.2-SNAPSHOT •
リリースタグを切るときに<version>を書き換える。 (これは当然) • trunk側も<version>を書き変える必要あるの? 18
19.
バージョン番号の固定観念を捨ててみる 「trunk(開発の本線)のpom.xmlはずっと <version>1.0-SNAPSHOT</version> のまま」 というルールにしてしまう! 1. それで開発してて、意外と困らない。 2. trunk配下のpom.xmlの<version>を リリースのたびに書き換える面倒は無くなる 3.
リリースのときに<version>1.2.3</version>に書 き換えてtagを切るのはセオリーどおりで。 19
20.
細かいバージョン番号を自分で決めない versions-maven-pluginでpom.xmlの <version>1.2-SNAPSHOT</version>を <version>1.2.3</version> に自動書き換え。 20 mvn versions:set –DnewVersion=1.2.${BUILD_NUMBER}
21.
${BUILD_NUMBER} ?? 21 ${BUILD_NUMBER} version 1.2.22の ビルド履歴ココ
22.
ビルド失敗=バージョン番号が飛ぶ=気にしない version 1.2.22 の 次のリリースが 1.2.30
だと 何か困ることが あるか? たぶん無い。 22 欠番 欠番 実際リリース したバージョン
23.
<version>を整えたらあとはデプロイ 23 mvn clean deploy -Dgpg.keyname=[自分のgpg鍵id] -Dgpg.passphrase=[gpg鍵のパスフレーズ]
24.
全体の流れ 24 mvn versions:set –DnewVersion=1.2.${BUILD_NUMBER} mvn
clean deploy -Dgpg.keyname=[自分のgpg鍵id] -Dgpg.passphrase=gpg鍵のパスフレーズ Git/Subversionにタグを切る ※タイミングは最後じゃないほうがいいかも。 ※下のコマンドはマネしないで! git commitせずにgit tagしてる(いい加減すぎw)
25.
おまけ:パスワードはマスク 25 Jenkins Maskpasswords Plugin
26.
おしまい ご清聴ありがとうございました! 26
Baixar agora