既に公開されているpluginのソースコードを拾ってきて少し変更して動かす方法が分からなくてハマったのでメモ。
具体的にはgradle-xcodePluginをちょっと触ろうと思ったんだけどソースコードからだとapply plugin:
が上手く出来なくてハマった。
環境
- gradle 2.3
前置き
buildSrcに入れて動かすとかjarをimportして動かすとか色々あるっぽいのだけど上手く行かなかったので、以下のようにした。
- pluginのソースコードをローカルに配置
- pluginのビルドを実行
- ビルドしたpluginをuploadArchivesでローカルリポジトリとして配置
- build.gradleのrepositoryに手順3で配置したパスを追加
やったこと
pluginのソースコードを取得
cd ~/workspace
git clone https://github.com/openbakery/gradle-xcodePlugin
pluginのビルド
cd gradle-xcodePlugin
gradle build
ビルドしたpluginの配置
uploadArchivesというtaskでmaven repositoryにファイルを配置するのがmaven界のしきたりっぽい(?)けど完全に理解してない。
gradle uploadArchives
今回のpluginのbuild.gradleにはこんな感じで書いてある。
...
uploadArchives {
repositories {
mavenDeployer {
repository(url: uri('../../repository'))
}
}
}
...
この場合はworkspace/repository以下にmaven repositoryぽいものが出来る。
applicationのbuild.gradleの編集
workspace/Appにアプリが配置されていて、直下にbuild.gradleがあるものとすると、以下のようにrepositoriesとdependenciesを指定することでビルドしたpluginを利用することが出来る。
...
buildscript {
repositories {
maven {
url uri('../repository')
}
mavenCentral()
}
dependencies {
classpath group: 'org.openbakery', name: 'xcodePlugin', version: '0.10.+'
}
}
apply plugin: 'xcode'
...
これでgradle task
とかやってpluginのtaskが表示されたら成功。
もう少しスマートなやり方があったら教えて下さい。
参考
Creating a Gradle Custom Plugin with Java
http://stackoverflow.com/questions/17664183/creating-a-gradle-custom-plugin-with-Java
ダメだったその他の方法っぽいやつ
http://gradle.monochromeroad.com/docs/userguide/custom_plugins.html