Java引入依赖aar_java – 如何将JAR依赖项包含到AAR库中
概要:
我有一個取決于JAR文件的AAR文件,當我構建AAR項目時,它不包含JAR代碼.
細節:
我有一個Java SDK庫項目,其中包含我們用于Java Web項目的代碼,而且這個庫是使用Gradle創建的,并且駐留在一個內部的nexus服務器(作為JAR)中.
目標是通過多個Android應用程序可以使用的AAR庫來提供這個JAR庫的“Android配置”版本,并最大限度地減少實施它的工作量(和樣板代碼).該AAR文件也被上傳到nexus服務器以供Android應用程序項目使用.
我的AAR項目包括對我的JAVA SDK庫(JAR)的漸變依賴,但是在構建時,AAR不包括任何類.
碼:
這是Java SDK項目的畢業文件:
apply plugin: 'java'
//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.7
version = '1.1.1'
repositories {
mavenCentral()
}
jar {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile 'org.apache.directory.studio:org.apache.commons.io:2.4'
compile 'org.springframework:spring-web:3.1.1.RELEASE'
compile 'com.google.code.gson:gson:2.3'
}
這是我的AAR項目的畢業文件,請注意,我從它刪除了maven存儲庫聲明到我的nexus服務器.我想這個問題并不重要.
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "2.2.2"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile ('com.mycompany:javasdk:1.1.1')
}
這是我的Android項目的畢業文件,我再次刪除了nexus服務器引用:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.mycompany.application1"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile ('com.mycompany:androidsdk:2.2.2@aar')
}
注意:我最初通過在AAR項目的lib目錄中添加JAR來解決問題,但這是不需要的.它使得一個nexus服務器無用.這將是一件好事,我們可以在AAR項目的gradle文件中碰到JAR的版本號,并且在編譯時會自動更新.
注2:我嘗試在Android項目中為我的AAR依賴添加transitive = true,但沒有解決任何問題,真正的問題是在構建AAR項目時,JAR項目代碼不會被捆綁.
感謝您的時間.
總結
以上是生活随笔為你收集整理的Java引入依赖aar_java – 如何将JAR依赖项包含到AAR库中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真三国无双霸兑换码怎么用?
- 下一篇: liunx 上get 不到url参数 j