SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
JAVA素人がECLIPSEプラグインを
作るためにやったこと
@SYAKU (ルウシィ)
自己紹介
竹村 爵友揮
@syaku(ルウシィ)
株式会社ビズリーチ (7/1~)
エンジニア
プログラミング歴は15年くらい
Javaはその最初期(Ver1.0)に少し+α
今回のお話
jfluteさんの作ったSAStrutsのラッパーのSAFluteの新規プロ
ジェクト作成プラグインを作成。
その際の開発の進め方、ハマったこと、考え方なんかをつらつ
らと。
技術的になんかすごい話は無いです。
なにげにEclipseプラグイン初挑戦。
まず最初にやったこと
とりあえず何か
アプリを作る!!
で、TWITTER作りました
アプリを作る理由
一度手作業で新規プロジェクトを作ることで自動化しないとい
けない作業について分かった気になる
そもそもEclipseをちゃんと使ったプログラミング自体初めてな
のでその練習台
Twitterアプリを作るのが伝統らしいので
DIFFを取る
めでたくアプリが出来たので変更内容をDiffを確認
新規にプロジェクトを作る際にどこを動的に生成するのかはっ
きりさせる
いざECLIPSEプラグ
イン開発!!
・・・の、前に
一旦落ち着いてJAVAティーを飲
む
基本戦略
基本はWizardで入力した名前と置換したサンプルプロジェクト
を生成する
テンプレートエンジンはVelocityで
そこから必要に応じてファイルを減らしてBlankプロジェクトを
作成
WizardでBlankプロジェクトを自動生成できるようにする
開発環境の構築にハマる
普通にJava開発用のEclipseを落とすとプラグインSDKが入っ
てなかった
どのプラグインをインストールすれば良いのか調べるも結局よ
く分からず
⇒最終的にプラグイン開発用のEclipseパッケージを落として
きて解決
プロジェクト作成でハマる
Plug-in Developmentだけでも6つくらいWizardがある
Wizardの項目がやたらと多い
先人の知恵を借りる
詳細な解説があるサイトはバージョンが違ってAPIが違った
り・・・
⇒説明が詳細なサイトを参考に作ってAPIが変わってるところ
は勘とEclipseの警告を元に修正する方針で進める
プラグイン作成のお作法にハ
マる
plugin.xmlのあの設定画面がそもそも分からない
同梱したリソースファイルが読めないとか
どうやったらJavaProjectになるのか
どうやったらMavenProjectに(ry
PLUGIN.XMLの設定がわからん
解説サイトを読む
ここでもバージョン違いで苦しむ
翻訳されてて項目名が変わってたりしてハマる
⇒結局は設定の意味よりやり方を先に調べてその後意味を調
べる方が速かった
⇒ただし前半だけで止めるとただのコピペ
リソースの読込でハマる
そもそも読み込むべきPathが分からない
プラグインの絶対Pathを取得するAPIがあるはずなのでその
方向で調べる
⇒xxxxがあるはずという考え方は結構役に立つ
⇒自分が欲しい物は大抵他人も欲しい
プロジェクトの設定とか
CLASSPATHの設定とか
最初はプロジェクトは真面目にコードで作ろうとしてた
ただclasspathの追加の仕方は分かったが大変
何故かコード上で追加できない設定がある
⇒テンプレート化してVelocityで生成
JAVAではハマらなかった
文法的にはJava1.0の頃から凄まじく変わったわけではない
出来る事は増えていたが思想的に仕事で使ってたC#とあんま
り変わらなかった
ノイマン型コンピュータの上で動くプログラミング言語なんてど
れも同じだと固く信じる
プログラミング言語はチューリング完全なので(ry
番外編:スライド作成でハマる
PowerPoint持ってない
というか持ってても使いこなせない
markdownで書きたい
⇒今回はreveal.js + markdownで作成
今後の展開
Blankプロジェクトの作成
テンプレート生成の自動化
ドキュメント作成を人に押しつける
広く一般に公開
今回の成果物
gitBREAKにて公開中
リポジトリは
というわけで も宜しく願いします。
以上、宣伝終わり。
こちら
codebreak;
ご清聴ありがと
うございました

Weitere ähnliche Inhalte

Was ist angesagt?

業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日Mitsuru Ogawa
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説Livesense Inc.
 
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!慎一 古賀
 
Webサービスを作るときの9の間違い
Webサービスを作るときの9の間違いWebサービスを作るときの9の間違い
Webサービスを作るときの9の間違いYusuke Katsuki
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)Yuuki Fukuda
 
LaboCollaシステムの今後 - 2020/10 寿司LT
LaboCollaシステムの今後 - 2020/10 寿司LTLaboCollaシステムの今後 - 2020/10 寿司LT
LaboCollaシステムの今後 - 2020/10 寿司LTSaito Kotaro
 
老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦GuildWorks
 
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)T. Kodaka
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。takepu
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りMasayuki Abe
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Masanori Satoh
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようNaoya Kojima
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストToshiyuki Hirata
 
今日から始めるアジャイル開発
今日から始めるアジャイル開発今日から始めるアジャイル開発
今日から始めるアジャイル開発Takashi Takebayashi
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterRyosuke Uchitate
 
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナーukkyo
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitYasuhiko Yamamoto
 

Was ist angesagt? (20)

業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
 
DevOpsって何?
DevOpsって何?DevOpsって何?
DevOpsって何?
 
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
 
Webサービスを作るときの9の間違い
Webサービスを作るときの9の間違いWebサービスを作るときの9の間違い
Webサービスを作るときの9の間違い
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
 
LaboCollaシステムの今後 - 2020/10 寿司LT
LaboCollaシステムの今後 - 2020/10 寿司LTLaboCollaシステムの今後 - 2020/10 寿司LT
LaboCollaシステムの今後 - 2020/10 寿司LT
 
老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦
 
Designing UX Development
Designing UX DevelopmentDesigning UX Development
Designing UX Development
 
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)
Windows ストアアプリを作ろう ~Metroスタイルアプリ入門~ (2012/09/29)
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
今日から始めるアジャイル開発
今日から始めるアジャイル開発今日から始めるアジャイル開発
今日から始めるアジャイル開発
 
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot StarterSpring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
 
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
 
TFSの導入提案
TFSの導入提案TFSの導入提案
TFSの導入提案
 

Ähnlich wie Java素人がeclipseプラグインを作るためにやったこと

Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2Kanako Kobayashi
 
Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。Futoshi Endo
 
Yiiフレームワークを使ってみた
Yiiフレームワークを使ってみたYiiフレームワークを使ってみた
Yiiフレームワークを使ってみたHisateru Tanaka
 
Outlook アドイン開発入門
Outlook アドイン開発入門Outlook アドイン開発入門
Outlook アドイン開発入門Hiroaki Oikawa
 
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介JustSystems Corporation
 
Tfad AgileDay MS 20100122
Tfad AgileDay MS 20100122Tfad AgileDay MS 20100122
Tfad AgileDay MS 20100122Kazumasa EBATA
 
Swift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSwift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSachiko Kajishima
 
Share agile for beginners 0824 sat.
Share agile for beginners 0824 sat.Share agile for beginners 0824 sat.
Share agile for beginners 0824 sat.AsukaTsukamoto
 
実務でGo使い始めました
実務でGo使い始めました実務でGo使い始めました
実務でGo使い始めましたYuki Kikuchi
 
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力Takashi Aoe
 
プログラミングはじめの一歩 先生:関根 元和
プログラミングはじめの一歩 先生:関根 元和プログラミングはじめの一歩 先生:関根 元和
プログラミングはじめの一歩 先生:関根 元和schoowebcampus
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するAkiyah
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたHirokiIwanaga
 
あたしデザイナだけど"ナントカ.js"と仲良くできたよ
あたしデザイナだけど"ナントカ.js"と仲良くできたよあたしデザイナだけど"ナントカ.js"と仲良くできたよ
あたしデザイナだけど"ナントカ.js"と仲良くできたよmomo yagi
 
Dev lobe20090325v1.0
Dev lobe20090325v1.0Dev lobe20090325v1.0
Dev lobe20090325v1.0walnut210
 
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25Erina Takei
 
プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方Yuichi Kato
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分松田 千尋
 

Ähnlich wie Java素人がeclipseプラグインを作るためにやったこと (20)

Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
 
Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。
 
Yiiフレームワークを使ってみた
Yiiフレームワークを使ってみたYiiフレームワークを使ってみた
Yiiフレームワークを使ってみた
 
Outlook アドイン開発入門
Outlook アドイン開発入門Outlook アドイン開発入門
Outlook アドイン開発入門
 
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
 
Tfad AgileDay MS 20100122
Tfad AgileDay MS 20100122Tfad AgileDay MS 20100122
Tfad AgileDay MS 20100122
 
実戦Scala
実戦Scala実戦Scala
実戦Scala
 
Swift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリとSwift愛好会_ライブラリを使わずにゴリゴリと
Swift愛好会_ライブラリを使わずにゴリゴリと
 
Share agile for beginners 0824 sat.
Share agile for beginners 0824 sat.Share agile for beginners 0824 sat.
Share agile for beginners 0824 sat.
 
実務でGo使い始めました
実務でGo使い始めました実務でGo使い始めました
実務でGo使い始めました
 
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
Java Day Tokyo 2013 Java the Night 監視ツールでみるJavaFXとJava EEの魅力
 
プログラミングはじめの一歩 先生:関根 元和
プログラミングはじめの一歩 先生:関根 元和プログラミングはじめの一歩 先生:関根 元和
プログラミングはじめの一歩 先生:関根 元和
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解する
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
 
あたしデザイナだけど"ナントカ.js"と仲良くできたよ
あたしデザイナだけど"ナントカ.js"と仲良くできたよあたしデザイナだけど"ナントカ.js"と仲良くできたよ
あたしデザイナだけど"ナントカ.js"と仲良くできたよ
 
Apex Test Plusの紹介
Apex Test Plusの紹介Apex Test Plusの紹介
Apex Test Plusの紹介
 
Dev lobe20090325v1.0
Dev lobe20090325v1.0Dev lobe20090325v1.0
Dev lobe20090325v1.0
 
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25オープンソースプロジェクトのはじめかた@Creators MeetUp #25
オープンソースプロジェクトのはじめかた@Creators MeetUp #25
 
プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
 

Java素人がeclipseプラグインを作るためにやったこと