私はAndroidStudioを使用していますが、このプロジェクトは次のとおりです:
青い円の中にあるのはmyLibです。 myLibは、赤い円の内側にある外部ライブラリと、Apacheパッケージ(緑色の円)も使用する必要があります。
したがって、このすべてを単一の.jarにしたいので、別のプロジェクトで使用できます。
ステップバイステップのガイドは本当にありがたいです、私は開発者の世界の初心者です。
ありがとう!
上記のコード:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
GradleでコードをプレーンJavaモジュールとして設定した場合、Gradleに内容を含むjarファイルを提供するのは非常に簡単です。そのjarファイルにはコードのみが含まれ、依存する他のApacheライブラリは含まれません。この方法で配布することをお勧めします。ライブラリ内に依存関係をバンドルするのは少し奇妙であり、それらのライブラリのユーザーが独自にそれらの依存関係を含める必要があるのはより一般的です(そうでなければ、それらのプロジェクトの衝突がすでにライブラリのコピーをリンクしているので、おそらく異なるバージョンの)。さらに、ライブラリを公開する場合に、他の人のコードを再配布することに関する潜在的なライセンスの問題を回避できます。
また、jarにコンパイルする必要があるコードを取得し、それをJava Studioの別のプレーンAndroidモジュールに移動します。
うまくいけば、プロジェクトが正常にビルドされるはずです。ビルドを実行すると、Javaライブラリのjarファイルが ビルド/ライブラリ モジュールのディレクトリ内のディレクトリ。 jarファイルを手動でビルドする場合は、そのを実行できます jar Gradleウィンドウからファイルタスクをビルドします。
これをJavaモジュールのbuild.gradleに追加するだけです。アーカイブに依存ライブラリが含まれます。
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
これにより、[module_name]/build/libs/[module_name] .jarファイルが作成されます。
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
私が見つけた方法は、プロジェクトコンパイラの出力を見つけることでした(プロジェクト構造>プロジェクト)。次に、jarにしたいモジュールのコンパイル済みフォルダーを見つけ、Zipで圧縮し、出力の拡張子をZipからjarに変更します。
AndroidStudioからgradleタスクを実行する場合
assembleRelease
またはターミナル経由
./gradlew <moduleName>:assembleRelease
その後、.aar
で<modulePath>/build/outputs/aar/<Name>.aar
を見つけることができます
その後、コマンドラインツールを使用して追加の操作(例:.jar
の作成)を行うことができます