AARのMaven依存
Android Application以外で該当ライブラリを使用するために,IntellijでAARのartifactへの依存をpom.xmlに設定しても上手くいきません.
例えば,以下のようなmapに関係するライブラリに依存することを考えます.(今回はLatLngを使いたかっただけなのに滅茶苦茶時間がかかった・・・・・)
<repositories> <repository> <id>id</id> <name>Google Maven Repository</name> <url>https://maven.google.com/</url> </repository> </repositories> <dependency> <groupId>com.google.android.gms</groupId> <artifactId>play-services-maps</artifactId> <version>17.0.0</version> <type>aar</type> </dependency>
症状としては,clean installを実行してもExternal LibrariesにMavenファイルが追加されません.一方で,.m2/には正しくダウンロードしてきているはずです.
対処法 候補
android-maven-pluginを使用すれば,正しく設定できるかもしれないらしい.要調査
力技
今回は使用したいライブラリが少なかったので力技で一旦解決することにしました.
.m2内の該当aarをunzipして,classes.jarを取得し,それを随時IntellijのLibraryに追加していきます
全然スマートじゃないし,スケーラビリティもないので,いつかちゃんとaarのまま読み込める方法を探したい・・・.Android StudioがIntellijベースで,Android Studioはaarをライブラリとして読み込めているんだから出来るはずだよなーーー.でも分からん.
ただし想像できると思いますが,この方法は次から次へと新しい依存が出てくるため死にたくなります.少しLibraryを足してはあっちが足りないから足していくという無間地獄です.この作業のおかげでようやくMavenやGradleのありがたみを実感できましたね・・.したくなかったですが.
Troubleshoot
Mavenでinstallすると,追加したはずのLibraryのpackageが存在しないと言われる
なぜか分かりませんが,頻繁に起こりました.cleanした後に確定で起こります.
Build > Rebuild Project
を実行してから,installを実施すると今度はなぜか普通にSUCCESSします.