【发布时间】:2021-07-25 17:07:09
【问题描述】:
在我的 java 项目中,我有以下文件夹:
-
app包含 android 特定应用程序 -
settings_fetcher是一个java模块
我要做的是首先构建 java 模块,创建一个 .jar 文件,然后将 .jar 文件移动到 ./app/libs,然后构建应用程序的其余部分。
app 文件夹包含以下build.gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.3"
}
}
plugins {
id 'com.android.application'
}
def versionCodeDate() {
return new Date().format("yyyyMMdd").toInteger()
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "pcmagas.vodafone_fu_h300s"
minSdkVersion 28
targetSdkVersion 30
versionCode versionCodeDate()
versionName "v"+versionCodeDate()
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
println 'In release configs'
def keystoreFile = rootProject.file(".keys/h300s.keystore")
def env = System.getenv();
if(env.containsKey('KEYSTORE_FILE')){
keystoreFile = rootProject.file(env.get('KEYSTORE_FILE'))
}
if (keystoreFile.exists() ) {
println("Configuring Signing options for release")
android.signingConfigs["release"].storeFile = keystoreFile
android.signingConfigs["release"].storePassword = System.getenv('MYAPP_RELEASE_STORE_PASSWORD')
android.signingConfigs["release"].keyAlias = System.getenv('KEYALIAS')
android.signingConfigs["release"].keyPassword = System.getenv('MYAPP_RELEASE_KEY_PASSWORD')
}
}
}
buildTypes {
release {
minifyEnabled true
signingConfig = signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests.returnDefaultValues = true
}
}
repositories {
google()
jcenter()
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
implementation 'androidx.activity:activity-ktx:1.2.0'
implementation 'androidx.fragment:fragment:1.3.0'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'org.json:json:20210307'
testImplementation 'com.github.gmazzo:okhttp-mock:1.4.1'
testImplementation 'junit:junit:4.+'
testImplementation 'org.mockito:mockito-core:3.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
虽然settings_fetcher 包含以下build_gradle:
plugins {
id 'java-library'
}
java {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
task makeJar(type: Copy) {
from('build/libs/')
into('../app/libs/')
include('settings_fetcher.jar')
}
有什么想法可以解决这个问题吗?
换句话说,我想要做的是当我运行以下命令之一时:
gradlew assemble^flavor^gradlew buildgradlew build^flavor^
^flavor^ 是我的应用程序的风格,可以是 Debug 或 Release。
为了能够先构建.jar 文件,然后再构建我的应用程序的apk。
【问题讨论】: