やること / やらないこと
やること
- プラグインの開発やデバッグが出来るように、AtlassianのSDKを入れます。
- Explore the Installed SDK and the atlas Commands のチュートリアルまでを試します。
追記 20140427
- 本来はConfluenceの動作確認/プラグインを書いたりすることが目的ですが、AtlassianのSDKを使ってみることをまず第一にしています。
- このため、Atlassianのチュートリアルに従い、最初はJIRAをベースに試しました。
- Confluenceで実施したい方は、中盤で触れている起動コマンドを、下記のように修正して下さい。
- atlas-run-standalone --product confluence
やらないこと
- 実際の開発(コマンドラインもしくはIDE)。
- Next Step以降 Create a HelloWorld Plugin Project
MacOS版をダウンロード
- MacOSではインストーラーがあるので、そちらをダウンロード&実行。
- うまく入ると、/usr/local/bin/ にパスが通った形でコマンドがインストールされます。
- SDKの中には、専用のMaven2も一緒に入っています。
% atlas-version
ATLAS Version: 4.2.20
ATLAS Home: /usr/share/atlassian-plugin-sdk-4.2.20
ATLAS Scripts: /usr/share/atlassian-plugin-sdk-4.2.20/bin
ATLAS Maven Home: /usr/share/atlassian-plugin-sdk-4.2.20/apache-maven
--------
Executing: /usr/share/atlassian-plugin-sdk-4.2.20/apache-maven/bin/mvn --version -gs /usr/share/atlassian-plugin-sdk-4.2.20/apache-maven/conf/settings.xml
Apache Maven 2.1.0 (r755702; 2009-03-19 04:10:27+0900)
Java version: 1.7.0_55
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x" version: "10.8.5" arch: "x86_64" Family: "mac"
% which atlas-version
/usr/local/bin//atlas-version
atlassian- で、どんなコマンドが入っているか確認してみます。
% atlas-
atlas-clean atlas-create-refapp-plugin-module
atlas-cli atlas-create-stash-plugin
atlas-clover atlas-create-stash-plugin-module
atlas-compile atlas-debug
atlas-create-bamboo-plugin atlas-help
# etc...
チュートリアルに従ってみると?
こちらのチュートリアルに従ってやってみます。
- Explore the Installed SDK and the atlas Commands
- まずは、書かれてある通りに、atlas-run-standalone --product jira を実行。
% atlas-run-standalone --product jira
Executing: /usr/share/atlassian-plugin-sdk-4.2.20/apache-maven/bin/mvn com.atlassian.maven.plugins:maven-amps-plugin:4.2.20:run-standalone -gs /usr/share/atlassian-plugin-sdk-4.2.20/apache-maven/conf/settings.xml -Dproduct='jira'
[INFO] Scanning for projects...
Downloading: https://maven.atlassian.com/repository/public/com/atlassian/maven/plugins/maven-amps-plugin/4.2.20/maven-amps-plugin-4.2.20.pom
8K downloaded (maven-amps-plugin-4.2.20.pom)
Downloading: https://maven.atlassian.com/repository/public/com/atlassian/amps/atlassian-amps-parent/4.2.20/atlassian-amps-parent-4.2.20.pom
16K downloaded (atlassian-amps-parent-4.2.20.pom)
Downloading: https://maven.atlassian.com/repository/public/com/atlassian/pom/atlassian-public-pom/27/atlassian-public-pom-27.pom
2K downloaded (atlassian-public-pom-27.pom)
Downloading: https://maven.atlassian.com/repository/public/com/atlassian/pom/atlassian-base-pom/35/atlassian-base-pom-35.pom
19K downloaded (atlassian-base-pom-35.pom)
Downloading: https://maven.atlassian.com/repository/public/com/atlassian/maven/plugins/maven-amps-plugin/4.2.20/maven-amps-plugin-4.2.20.jar
380K downloaded (maven-amps-plugin-4.2.20.jar)
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [com.atlassian.maven.plugins:maven-amps-plugin:4.2.20:run-standalone] (aggregator-style)
[INFO] ------------------------------------------------------------------------
… 中略 …
Downloading: https://maven.atlassian.com/repository/public/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.jar
32K downloaded (maven-filtering-1.0-beta-2.jar)
[INFO] [amps:run-standalone]
Would you like to subscribe to the Atlassian developer mailing list? (Y/y/N/n) [Y]:
… 中略 …
[INFO] [2.ContainerStartMojo] Resolved container artifact org.codehaus.cargo:cargo-core-container-tomcat:jar:1.4.7 for container tomcat7x
[INFO] [talledLocalContainer] Tomcat 7.x starting...
[INFO] [stalledLocalDeployer] Deploying [/Users/takano/work/atlastutorial/amps-standalone/target/jira/jira.war] to [/Users/takano/work/atlastutorial/amps-standalone/target/container/tomcat7x/cargo-jira-home/webapps]...
[INFO] [talledLocalContainer] Tomcat 7.x started on port [2990]
[INFO] jira started successfully in 241s at http://dhcp245:2990/jira
[INFO] Type Ctrl-D to shutdown gracefully
[INFO] Type Ctrl-C to exit
何がおきたの?
コンソール出力に従って、http://localhost:2990/jira にアクセスしてみると、JIRAの画面が!
デフォルトのパスワードはadmin/adminなので、そのままログイン。
ダッシュボードには、プラグイン開発用ライセンスの旨が表示されています。
チュートリアルに従って、何が起きたか確認してみます。
- atlas-run-standaloneは、Shell Script。実際は引数に応じてmvnが実行される。
- amps-standaloneというディレクトリが作られる。
- AtlassianのMavenリポジトリから、JIRAに必要なファイル一式がダウンロードされ、ビルド実行。
- Tomcat7 (公式ドキュメントではTomcat6)も勝手にインストールされて、JIRAをdeploy。
ディレクトリを確認してみると、確かに出来ています。
% tree -L 3 amps-standalone
amps-standalone
└── target
├── container
│ └── tomcat7x
├── dependency-maven-plugin-markers
│ └── org.apache.tomcat-apache-tomcat-zip-windows-x64-7.0.40.marker
├── jira
│ ├── bundled-plugins
│ ├── home
│ ├── jira-original.war
│ ├── jira-plugin-test-resources.zip
│ ├── jira.war
│ ├── tmp-resources
│ └── webapp
└── jira-LATEST.log
9 directories, 5 files
じっさいに登録できる?
Webアプリケーションとしては、普通に操作できるようです。
せっかくなので、テストプロジェクトと、チケットを作成してみます。
shutdownしてみると?
Ctrl+Dで、Mavenのプロセスを停止してみます。まずはJIRAがshutdownし、BUILDが終了。(FAILにはなりません)
[INFO] jira: Shutting down
[INFO] using codehaus cargo v1.4.7
[INFO] [cargo:stop {execution: virtual-execution}]
[INFO] [talledLocalContainer] Tomcat 7.x is stopping...
4 22, 2014 5:44:49 午前 org.apache.catalina.startup.ClassLoaderFactory validateFile
… 中略 …
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 161 minutes 42 seconds
[INFO] Finished at: Tue Apr 22 05:45:00 JST 2014
[INFO] Final Memory: 45M/276M
[INFO] ------------------------------------------------------------------------
評価用だから、停止してしまうとデータも消えちゃうのかな…とおもったのですが、そこは大丈夫。
もう一度、atlas-run-standalone を実行してJIRAを立ち上げると、ちゃんとチケットが表示されています。
データはどこにあるの?
atlas-run-standalone (実際にはmvn)で起動したJIRAは、データストアとしてHSQL DBを利用します。
HSQL DBはオンメモリで稼働するDBです。(だいぶ端折っての説明で申し訳ありません)
このため、プロセスを停止するとデータがクリアされてしまいます。
JIRAのHSQLに関する設定/データは、JIRA_HOMEに当たる場所にストアされます。
今回の場合は、atlastutorial/amps-standalone/target/jira/home 以下。
# HSQL Database Engine
# Tue Apr 22 05:47:58 JST 2014
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=false
hsqldb.cache_size_scale=8
readonly=false
hsqldb.nio_data_file=true
hsqldb.cache_scale=14
version=1.8.0
hsqldb.default_table_type=memory
hsqldb.cache_file_scale=1
hsqldb.log_size=200
modified=yes
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.8.0
hsqldb.compatible_version=1.8.0
設定ファイルにあるとおり、インメモリタイプとしての利用なので、shutdownしたら消えてしまうんじゃ…と思ったのですが、上記で確認した通りデータは消えずに残っています。
どうやら、caches/ 以下にデータが書き出されていて、それを起動時にロードしてくれているようです。
※ここは確認取れてないので、間違ってたらすみません…。
ログはどこを見ればいい?
コンソールにも表示されますが、今回の場合は、atlastutorial/amps-standalone/target/jira-LATEST.log にも書き出されます。
今回のまとめ
やったことは、下記の通り。
- SDKのインストール。
- 何を使って実行されるか野確認。(java, mavenでビルドし起動)
- データや設定ファイルがどこに格納されるかの確認。
わたしは基本はRedmineのプラグインを書いたりしている身ですが、ご縁あってConfluenceやJIRAの評価をしています。
立場としては、Webアプリケーション管理者的な視点からではありますが、トラブル時に原因をさぐれるように、プラグインの追加や開発の方法を勉強したいと思っています。実際のコーディングは、たぶん大したものはできないとは思うのですが、今後も少しずつメモをアップしようと思います。
追記 / 更新
20151120: インストーラについて
- Mac版に関しては、パッケージのインストーラーの他に、Homebrewでのインストールが可能になっています
- brewでSDKの更新が可能です
- Ref: Install the Atlassian SDK on a Linux or Mac System
20151120: atlas-runのビルド時に失敗する
これもMac版情報ですが、環境変数JAVA_HOMEを明示していない場合、atlas-runの処理で実行されるMaven (mvn) は、Macに標準でインストールされているJDKを利用します。(Java1.6系)
Oracleからダウンロードして最新版のJDKをインストールしても、JAVA_HOMEを明示していないと古いバージョンのJavaを利用しようとして、ビルドの途中で失敗します。
表示されるエラー:
due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com/atlassian/maven/plugins/amps/RunStandaloneMojo : Unsupported major.minor version 51.0
Javaのバージョンが合わないというメッセージです。
ただし、『最新版のJDKをインストールしているし、java -version でも最新版のバージョンが表示されているのになぜ?』の場合は、atlas-version コマンドで確認してみてください。
出力されるJava home、Java versionが古いバージョンになっている可能性があります。何も指定がない場合は、先のMacに標準でインストールされているJDKを見に行ってしまうからのようです。
いくつか方法がありますが、mavenのビルドだけに最新版を適用したい場合は、.mavenrcで指定できます。
$ ~/.mavenrc
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_xx.jdk/Contents/Home
$ atlas-version
ATLAS Version: 6.1.0
ATLAS Home: /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec
ATLAS Scripts: /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec/bin
ATLAS Maven Home: /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec/apache-maven-3.2.1
AMPS Version: 6.1.2
--------
Executing: /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec/apache-maven-3.2.1/bin/mvn --version -gs /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec/apache-maven-3.2.1/conf/settings.xml
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T02:37:52+09:00)
Maven home: /usr/local/Cellar/atlassian-plugin-sdk/6.1.0/libexec/apache-maven-3.2.1
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
参考情報: