У меня есть проект, содержащий сервер и приложение для Android, сервер основан на Java. Я хочу создать модуль градиента для обычного java-кода, который может использоваться сервером и Android-приложением, я создал общий модуль как модуль java gradle java, и кажется, что я могу импортировать этот модуль как зависимость от сервера и приложение для Android. Моя проблема заключается в том, что, хотя сборка град успешно прошла, intellij не может найти зависимости от модуля java в приложении Android. Есть ли способ сделать то, что я пытаюсь или, может быть, intellij просто не поддерживает его?Как я могу импортировать java-модуль gradle из приложения android из приложения java
1
A
ответ
0
Если следующая конфигурация состоит из app
, server
и common
модулей:
project/
├── app/
│ ├── build.gradle
│ └── src
├── server/
│ ├── build.gradle
│ └── src
├── common/
│ ├── build.gradle
│ └── src
├── build.gradle
└── settings.gradle
settings.gradle
содержит модуль листинг:
include ':app',':server',':common'
Если у вас есть подкаталоги между модулями, как:
project/
├── server/
│ ├── subfolder
├── build.gradle
Ваш settings.gradle
будет выглядеть так:
include ':app',':server',':common'
project(':server').projectDir = new File('subfolder/server')
верхнего уровня build.gradle
включают в com.android.tools.build:gradle:X.X.XX
классам:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
Ваше приложение build.gradle
имеет com.android.application
плагин с зависимостями для ваших server
и common
модулей. Это app
модуля build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':server')
compile project(':common')
}
server
и common
модули Java модуль, который может быть использован в проекте Android, а также в проекте Java (в IntelliJ-идеи) с java
плагин. Это server
и common
модуля build.gradle
:
apply plugin: 'java'
dependencies {
//for server module common module dependency :
//compile project(':common')
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
compileJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
спасибо, это то, что я делаю, но IntelliJ имеет проблемы с этой установкой и не найти классы от «общего» – jacob