SlideShare une entreprise Scribd logo
1  sur  18
Ubuntuで構築 する開発環境
        Part2


     hiro345@SSS(G)
自己紹介
●   hiro345
    twitter: @hiro345
    blog: http://www.sssg.org/blogs/hiro345/


              ●
                  執筆
                   @IT ... Java, Eclipse, Android, C
                   日経Linux ... Java, Dart, Cloud
                   日経ソフトウェア ... Java
                   Java World, WEB+DB Press など
とり急ぎ用意するならUbuntu
●   apt-get で何でも簡単にインストールできる
●   プログラミング言語の開発環境インストール
    も簡単にできる
●   端末で入力したコマンドから、インストール
    するパッケージを教えてくれる。
前回は、Ruby/JRuby・Java・Pythonなどをイン
ストールし、Eclipse, NetBeansなどの統合開発
環境もインストールした。
開発支援環境
●   ビルドツール Apache Maven
●   チケット管理 Redmine
●   継続的統合 Jenkins
Apache Maven
●   Javaのプロジェクト管理ソフト
●   POM(Project Object Model)
●   Apache Maven のサイトからダウンロードして
    インストール
     http://maven.apache.org/
●   Ubuntuでは apt-get でインストール可能。
    mavenだとMaven 3、maven2だとMaven 2 がイ
    ンストールできる。
         $ sudo apt-get install maven
できること
●   ビルドやレポートやドキュメントの生成を管理できる
●   Mavenでは、あるプロジェクトに必要となるライブラリの設定、ビルドに関する
    情報、テストとレポートに関する情報をpom.xmlというXMLファイルへ記述す
    る。
●   Mavenのmvnコマンドを使うと、pom.xmlの指定に従って処理が実行できる。
●   Mavenのセントラルリポジトリから依存関係のあるファイルをダウンロードし
    て、ローカルリポジトリ(通常は$HOME/.m2)へ保存し、そのライブラリを参
    照しながらコンパイルをして目的とするバイナリファイルを生成できる。
Mavenのリポジトリ
Maven セントラルリポジトリ




           Maven ローカルリポジトリ $HOME/.m2/repository

                          $ mvn archetype:generate
  ダウンロード                  $ mvn compile
                          $ mvn test
                          $ mvn site
                          $ mvn javadoc:javadoc
        インストール            $ mvn package

                          $ mvn install
Mavenプロジェクト
$ mvn archetype:generate
(略)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 216:
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6:
(略)
quickstart/1.1/maven-archetype-quickstart-1.1.pom (2 KB at 37.7 KB/sec)
Define value for property 'groupId': : org.sssg.soft.example.maven
Define value for property 'artifactId': : Example
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': org.sssg.soft.example.maven: :
Confirm properties configuration:
groupId: org.sssg.soft.example.maven
artifactId: Example
version: 1.0-SNAPSHOT
package: org.sssg.soft.example.maven
 Y: : Y
生成されるディレクトリとファイル
   .
   └── Example
     ├── pom.xml
     └── src
       ├── main
       │ └── java
       │     └── org
       │        └── sssg
       │          └── soft
       │            └── example
       │              └── maven
       │                └── App.java
       └── test
         └── java
             └── org
               └── sssg
                 └── soft
                   └── example
                     └── maven
                       └──
   AppTest.java
コンパイル、テスト
$ mvn compile
$ mvn test
└── target
  ├── classes
  │ └── org
  │     └── sssg
  │        └── soft
  │          └── example
  │            └── maven
  │              └── App.class
  ├── surefire
  ├── surefire-reports
  │ ├── TEST-org.sssg.soft.example.maven.AppTest.xml
  │ └── org.sssg.soft.example.maven.AppTest.txt
  └── test-classes
    └── org
       └── sssg
         └── soft
            └── example
              └── maven
                └── AppTest.class
ALMinium
●
    ALM(Application Lifecycle Management)と
    Redmineの合金(..nium)という意味から
     https://github.com/alminium/alminium
●   簡単にインストールできる
●   複数プロジェクト対応
●   複数メンバで利用するGitリポジトリを簡単に
    用意できる
ALMiniumに同梱される
            Redmineプラグイン
●   Backlogs スクラム開発のサポート
●   Hudson Plugin   Jenkins/Hudsonとの連携
●   Code Review コードレビュー支援
●   Redcarpet Wiki Formatter GitHubのMarkdown Wiki
    フォーマットを利用
●   MSProjects MS Projectのファイルをインポート
●   XLS export Excelでチケットを出力
●   Git Branch Hook Gitのブランチでの作業をチケットに連
    動させます
ALMiniumインストール
●   git cloneして、smeltスクリプト実行するだけ
$ git clone https://github.com/alminium/alminium.git
$ cd alminium; sudo bash smelt.sh

    */opt/alminium にインストールされる
    *インストールが終了するまで、結構時間がかかる
    *Apache2, MySQL, Rubyなどが自動インストールされる
    *専用マシンを用意した方がいいだろう
    *Redmineのエラーがでることがある。とりあえずエラー
     となるプラグインはディレクトリを移動してはずす
     redmine_drafts plugin requires Redmine ["2.1.0"] or
     higher but current is 2.0.3.stable (Redmine::Plugin
     RequirementError)
ALMinium設定
●   http://localhost/ へアクセス
●   ユーザ admin でログイン。初期パスワードは最初にアク
    セスしたページに記載されている。変更しておくのがよい
●   ユーザ追加(user001)
●   プロジェクト追加(maven001)。Gitリポジトリを使うと指
    定すると、自動でGitリポジトリが作成される
●   プロジェクトのメンバへユーザ追加
●   リポジトリの確認
    $ git clone http://user001@localhost/git/maven001
    $ cd maven001; vi readme.txt
    $ git add readme.txt; git commit -am “init”
    $ git push origin master
Jenkins
  ●
      ソフトウェア開発時のビルド/テストを継続
      的に実施することを強力にサポート
  ●   インストールも簡単。Ubuntuだと下記
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add
-
$ sudo apt-get update; sudo apt-get install jenkins



                            ●
                                http://jenkins-ci.org/
Jenkins設定
●   http://localhost:8080/ へアクセス
●   プラグイン Git Plugin をインストール
●   ALMiniumで、maven001プロジェクトへアクセスできるJenkins用ア
    カウントを追加
●   新しいジョブを追加。Gitを利用すると指定, Poll SCMもチェック
    http://jenkins:jenkins@localhost/git/maven001
●   Git hook ... /var/opt/alminium/git/maven002/hooks/post-receive
    #!/bin/sh
    /opt/alminium/bin/alm-sync-scm
    /usr/bin/wget --spider http://localhost:8080/job/maven002/polling
●   jenkinsユーザについて、Git global設定
    $ sudo su - jenkins
    $ git config --global user.email "jenkins@localhost.localdomain"
    $ git config --global user.name "jenkins ubuntu"
知っておきたいディレクトリ
●   ALMinium
    –   本体:/opt/alminium
    –   Gitリポジトリ:/var/opt/alminium/git/maven002
●   Jenkins
    –   本体:/usr/share/jenkins/jenkins.war
    –   ワークスペース:
        /var/lib/jenkins/jobs/maven002/workspace
まとめ

●   そろそろ Apache Maven に慣れよう
●   ALMiniumを使うとアジャイル開発がしやすい環
    境が手に入る
●   Jenkinsを使って開発時の作業について、自動化
    することができる

Contenu connexe

Tendances

はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Scrum with Redmine Backlogs
Scrum with Redmine BacklogsScrum with Redmine Backlogs
Scrum with Redmine BacklogsRyuta Hamasaki
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみたpyar6329
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2ndmikoto20000
 
Vagrant - 最近流行ってるらしいけど何者?
Vagrant - 最近流行ってるらしいけど何者?Vagrant - 最近流行ってるらしいけど何者?
Vagrant - 最近流行ってるらしいけど何者?Yoshinori Nakanishi
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxKazushi Kamegawa
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するKite Koga
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境ast_j
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介Uchio Kondo
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restorekawamuray
 

Tendances (20)

はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Scrum with Redmine Backlogs
Scrum with Redmine BacklogsScrum with Redmine Backlogs
Scrum with Redmine Backlogs
 
Plugman code-reading
Plugman code-readingPlugman code-reading
Plugman code-reading
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2nd
 
Vagrant - 最近流行ってるらしいけど何者?
Vagrant - 最近流行ってるらしいけど何者?Vagrant - 最近流行ってるらしいけど何者?
Vagrant - 最近流行ってるらしいけど何者?
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築する
 
Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
 
Jenkins with Docker
Jenkins with DockerJenkins with Docker
Jenkins with Docker
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 
Bluemix sign-up
Bluemix sign-upBluemix sign-up
Bluemix sign-up
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restore
 

En vedette

Par land
Par landPar land
Par landsumitru
 
Dinero electronico Ivan/Dorcas E-comercio
Dinero electronico Ivan/Dorcas E-comercioDinero electronico Ivan/Dorcas E-comercio
Dinero electronico Ivan/Dorcas E-comercioiVAN
 
‫מסמך טקסט ‫חדש
‫מסמך טקסט ‫חדש‫מסמך טקסט ‫חדש
‫מסמך טקסט ‫חדשmaytar
 
H2h productions old video file
H2h productions old video fileH2h productions old video file
H2h productions old video fileMartha Baker
 
Spring exhibit
Spring exhibitSpring exhibit
Spring exhibitSaba Ghole
 

En vedette (7)

1410_631_AMR_201002.pdf
1410_631_AMR_201002.pdf1410_631_AMR_201002.pdf
1410_631_AMR_201002.pdf
 
Par land
Par landPar land
Par land
 
Dinero electronico Ivan/Dorcas E-comercio
Dinero electronico Ivan/Dorcas E-comercioDinero electronico Ivan/Dorcas E-comercio
Dinero electronico Ivan/Dorcas E-comercio
 
‫מסמך טקסט ‫חדש
‫מסמך טקסט ‫חדש‫מסמך טקסט ‫חדש
‫מסמך טקסט ‫חדש
 
H2h productions old video file
H2h productions old video fileH2h productions old video file
H2h productions old video file
 
Spring exhibit
Spring exhibitSpring exhibit
Spring exhibit
 
Slide1 teste
Slide1 testeSlide1 teste
Slide1 teste
 

Similaire à Nseg20120929

環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Hironao Sekine
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfesTakeshi Komiya
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~de:code 2017
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeomantomo_masakura
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 

Similaire à Nseg20120929 (20)

環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Capistrano
CapistranoCapistrano
Capistrano
 
Scoop!
Scoop!Scoop!
Scoop!
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
Alfresco CI
Alfresco CIAlfresco CI
Alfresco CI
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 

Plus de hiro345

手軽に使ってみようIoTデバイス
手軽に使ってみようIoTデバイス手軽に使ってみようIoTデバイス
手軽に使ってみようIoTデバイスhiro345
 
Raspberry Pi を楽しもう
Raspberry Pi を楽しもうRaspberry Pi を楽しもう
Raspberry Pi を楽しもうhiro345
 
リーダブルパスワード - SQLアンチパターンより抜粋 -
リーダブルパスワード - SQLアンチパターンより抜粋 -リーダブルパスワード - SQLアンチパターンより抜粋 -
リーダブルパスワード - SQLアンチパターンより抜粋 -hiro345
 
Raspberry Pi and WebIOPi
Raspberry Pi and WebIOPiRaspberry Pi and WebIOPi
Raspberry Pi and WebIOPihiro345
 
Frontend framework and Template
Frontend framework and TemplateFrontend framework and Template
Frontend framework and Templatehiro345
 
WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎hiro345
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)hiro345
 
5分でわかる! SqljockyでDart+MySQL
5分でわかる! SqljockyでDart+MySQL5分でわかる! SqljockyでDart+MySQL
5分でわかる! SqljockyでDart+MySQLhiro345
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)hiro345
 

Plus de hiro345 (10)

手軽に使ってみようIoTデバイス
手軽に使ってみようIoTデバイス手軽に使ってみようIoTデバイス
手軽に使ってみようIoTデバイス
 
Raspberry Pi を楽しもう
Raspberry Pi を楽しもうRaspberry Pi を楽しもう
Raspberry Pi を楽しもう
 
リーダブルパスワード - SQLアンチパターンより抜粋 -
リーダブルパスワード - SQLアンチパターンより抜粋 -リーダブルパスワード - SQLアンチパターンより抜粋 -
リーダブルパスワード - SQLアンチパターンより抜粋 -
 
Raspberry Pi and WebIOPi
Raspberry Pi and WebIOPiRaspberry Pi and WebIOPi
Raspberry Pi and WebIOPi
 
Frontend framework and Template
Frontend framework and TemplateFrontend framework and Template
Frontend framework and Template
 
WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
 
5分でわかる! SqljockyでDart+MySQL
5分でわかる! SqljockyでDart+MySQL5分でわかる! SqljockyでDart+MySQL
5分でわかる! SqljockyでDart+MySQL
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)
 

Dernier

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Dernier (10)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Nseg20120929

  • 1. Ubuntuで構築 する開発環境 Part2 hiro345@SSS(G)
  • 2. 自己紹介 ● hiro345 twitter: @hiro345 blog: http://www.sssg.org/blogs/hiro345/ ● 執筆  @IT ... Java, Eclipse, Android, C 日経Linux ... Java, Dart, Cloud 日経ソフトウェア ... Java Java World, WEB+DB Press など
  • 3. とり急ぎ用意するならUbuntu ● apt-get で何でも簡単にインストールできる ● プログラミング言語の開発環境インストール も簡単にできる ● 端末で入力したコマンドから、インストール するパッケージを教えてくれる。 前回は、Ruby/JRuby・Java・Pythonなどをイン ストールし、Eclipse, NetBeansなどの統合開発 環境もインストールした。
  • 4. 開発支援環境 ● ビルドツール Apache Maven ● チケット管理 Redmine ● 継続的統合 Jenkins
  • 5. Apache Maven ● Javaのプロジェクト管理ソフト ● POM(Project Object Model) ● Apache Maven のサイトからダウンロードして インストール http://maven.apache.org/ ● Ubuntuでは apt-get でインストール可能。 mavenだとMaven 3、maven2だとMaven 2 がイ ンストールできる。 $ sudo apt-get install maven
  • 6. できること ● ビルドやレポートやドキュメントの生成を管理できる ● Mavenでは、あるプロジェクトに必要となるライブラリの設定、ビルドに関する 情報、テストとレポートに関する情報をpom.xmlというXMLファイルへ記述す る。 ● Mavenのmvnコマンドを使うと、pom.xmlの指定に従って処理が実行できる。 ● Mavenのセントラルリポジトリから依存関係のあるファイルをダウンロードし て、ローカルリポジトリ(通常は$HOME/.m2)へ保存し、そのライブラリを参 照しながらコンパイルをして目的とするバイナリファイルを生成できる。
  • 7. Mavenのリポジトリ Maven セントラルリポジトリ Maven ローカルリポジトリ $HOME/.m2/repository $ mvn archetype:generate ダウンロード $ mvn compile $ mvn test $ mvn site $ mvn javadoc:javadoc インストール $ mvn package $ mvn install
  • 8. Mavenプロジェクト $ mvn archetype:generate (略) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 216: Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6: (略) quickstart/1.1/maven-archetype-quickstart-1.1.pom (2 KB at 37.7 KB/sec) Define value for property 'groupId': : org.sssg.soft.example.maven Define value for property 'artifactId': : Example Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': org.sssg.soft.example.maven: : Confirm properties configuration: groupId: org.sssg.soft.example.maven artifactId: Example version: 1.0-SNAPSHOT package: org.sssg.soft.example.maven Y: : Y
  • 9. 生成されるディレクトリとファイル . └── Example ├── pom.xml └── src ├── main │ └── java │ └── org │ └── sssg │ └── soft │ └── example │ └── maven │ └── App.java └── test └── java └── org └── sssg └── soft └── example └── maven └── AppTest.java
  • 10. コンパイル、テスト $ mvn compile $ mvn test └── target ├── classes │ └── org │ └── sssg │ └── soft │ └── example │ └── maven │ └── App.class ├── surefire ├── surefire-reports │ ├── TEST-org.sssg.soft.example.maven.AppTest.xml │ └── org.sssg.soft.example.maven.AppTest.txt └── test-classes └── org └── sssg └── soft └── example └── maven └── AppTest.class
  • 11. ALMinium ● ALM(Application Lifecycle Management)と Redmineの合金(..nium)という意味から https://github.com/alminium/alminium ● 簡単にインストールできる ● 複数プロジェクト対応 ● 複数メンバで利用するGitリポジトリを簡単に 用意できる
  • 12. ALMiniumに同梱される Redmineプラグイン ● Backlogs スクラム開発のサポート ● Hudson Plugin Jenkins/Hudsonとの連携 ● Code Review コードレビュー支援 ● Redcarpet Wiki Formatter GitHubのMarkdown Wiki フォーマットを利用 ● MSProjects MS Projectのファイルをインポート ● XLS export Excelでチケットを出力 ● Git Branch Hook Gitのブランチでの作業をチケットに連 動させます
  • 13. ALMiniumインストール ● git cloneして、smeltスクリプト実行するだけ $ git clone https://github.com/alminium/alminium.git $ cd alminium; sudo bash smelt.sh */opt/alminium にインストールされる *インストールが終了するまで、結構時間がかかる *Apache2, MySQL, Rubyなどが自動インストールされる *専用マシンを用意した方がいいだろう *Redmineのエラーがでることがある。とりあえずエラー  となるプラグインはディレクトリを移動してはずす redmine_drafts plugin requires Redmine ["2.1.0"] or higher but current is 2.0.3.stable (Redmine::Plugin RequirementError)
  • 14. ALMinium設定 ● http://localhost/ へアクセス ● ユーザ admin でログイン。初期パスワードは最初にアク セスしたページに記載されている。変更しておくのがよい ● ユーザ追加(user001) ● プロジェクト追加(maven001)。Gitリポジトリを使うと指 定すると、自動でGitリポジトリが作成される ● プロジェクトのメンバへユーザ追加 ● リポジトリの確認 $ git clone http://user001@localhost/git/maven001 $ cd maven001; vi readme.txt $ git add readme.txt; git commit -am “init” $ git push origin master
  • 15. Jenkins ● ソフトウェア開発時のビルド/テストを継続 的に実施することを強力にサポート ● インストールも簡単。Ubuntuだと下記 $ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - $ sudo apt-get update; sudo apt-get install jenkins ● http://jenkins-ci.org/
  • 16. Jenkins設定 ● http://localhost:8080/ へアクセス ● プラグイン Git Plugin をインストール ● ALMiniumで、maven001プロジェクトへアクセスできるJenkins用ア カウントを追加 ● 新しいジョブを追加。Gitを利用すると指定, Poll SCMもチェック http://jenkins:jenkins@localhost/git/maven001 ● Git hook ... /var/opt/alminium/git/maven002/hooks/post-receive #!/bin/sh /opt/alminium/bin/alm-sync-scm /usr/bin/wget --spider http://localhost:8080/job/maven002/polling ● jenkinsユーザについて、Git global設定 $ sudo su - jenkins $ git config --global user.email "jenkins@localhost.localdomain" $ git config --global user.name "jenkins ubuntu"
  • 17. 知っておきたいディレクトリ ● ALMinium – 本体:/opt/alminium – Gitリポジトリ:/var/opt/alminium/git/maven002 ● Jenkins – 本体:/usr/share/jenkins/jenkins.war – ワークスペース: /var/lib/jenkins/jobs/maven002/workspace
  • 18. まとめ ● そろそろ Apache Maven に慣れよう ● ALMiniumを使うとアジャイル開発がしやすい環 境が手に入る ● Jenkinsを使って開発時の作業について、自動化 することができる