如何从android应用程序和java应用程序导入gradle java模块
问题描述:
我有一个包含服务器和android应用程序的项目,该服务器是基于java的。我想为服务器和android应用程序可以使用的常见java代码创建一个gradle模块,我创建了通用模块作为gradle java模块,并且似乎可以将该模块作为服务器和Android应用程序。 我的问题是,虽然gradle构建成功,但intellij无法从android应用程序中的java模块中找到依赖项。 有什么方法可以做我正在尝试的,或者intellij只是不支持它?如何从android应用程序和java应用程序导入gradle java模块
答
如果您有以下配置组成的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
包括在classpath 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
模块可以在Android项目中使用,以及在Java项目(在的IntelliJ-主意)的Java模块与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