読者です 読者をやめる 読者になる 読者になる

Android Studio で twitter4j最新版をmaven から落とすプロジェクト方式 を試してみた

IDEAではよくある形式
android maven project での

  1. ローカルの libs
  2. maven経由でjarをDLしてくる
  3. 一緒にコンパイル
  4. apk作成

の形式を試してみます

前提として
 Android Studioの build.gradle どこまで弄れるか試してみた - exception think
の構成はできていること前提に進めます

ずばり通常のgradleファイルと同じ方式で可能です

repositories {
    //flatDir(dirs: file("$projectDir/libs"))
    mavenCentral()
    mavenRepo urls: 'http://twitter4j.org/maven2' //twitter4j のmaven Repo
}

dependencies {
    compile fileTree(dir: 'libs', includes: ['*.jar'])
    compile project(':yutori_lib')  // library-projectを使っていないときは不要
    compile "org.twitter4j:twitter4j-core:3.0.4-SNAPSHOT" //mavenからDLする記述
}

でビルドは通るようになりました。


で、ここからが問題。
IDEAってmavenベースのIDEなだけあって

  • pom.xml でjarをDL
  • 自動的に $HOME/.m2 のライブラリを認識

って機能があるのですが
gradleというかg系だと

  • groovy
    • $HOME/.groovy/grapes
  • 他のGプロダクト
    • $HOME/.ivy2

にライブラリをDLしてしまうんですね。

で見てみた感じ認識している気配はない。

で手動で設定しないと 補完効かない。。。

これ凄くもにょるので ivyidea のpluginを追加します

  • パッケージの内容の表示で中の構成を表示します

  • パッケージの中

  • Pluginを有効にします

  • ivyプラグインの設定でデフォルト設定にします
    • use ivy default

  • 無事 $HOME/.ivy フォルダ内の twitter4jが認識しました


結局のところ ASの最大の問題って

辺りのところだと思うんで、
プラグイン拡張システムがそこまで連動を許可するかどうかって話しかもなーとか思う