Java Gradle:项目依赖于库,但不是库本身
我的android解决方案包含3个项目:Java Gradle:项目依赖于库,但不是库本身,java,android,gradle,android-gradle-plugin,build.gradle,Java,Android,Gradle,Android Gradle Plugin,Build.gradle,我的android解决方案包含3个项目: 应用程序。表示层,其中包含UI的逻辑。安卓应用项目 域。业务逻辑。Java图书馆项目 数据。数据存储。安卓图书馆项目 应用程序依赖于域。域依赖于数据 以下是应用程序项目的build.gradle: apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.0.1" defaultConfig {
- 应用程序。表示层,其中包含UI的逻辑。安卓应用项目李>
- 域。业务逻辑。Java图书馆项目李>
- 数据。数据存储。安卓图书馆项目李>
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "com.company.name"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
...
}
}
buildTypes {
...
}
}
dependencies {
compile project(':domain')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.asne.facebook:facebook:3.17.2'
compile 'com.google.android.gms:play-services:6.1.11'
compile 'com.android.support:appcompat-v7:21.0.0'
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "com.company.name"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
...
}
}
dependencies {
compile 'org.simpleframework:simple-xml:2.7.1'
}
域的build.gradle项目:
apply plugin: 'java'
dependencies {
compile project(':data')
}
数据的build.gradle项目:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "com.company.name"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
...
}
}
buildTypes {
...
}
}
dependencies {
compile project(':domain')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.asne.facebook:facebook:3.17.2'
compile 'com.google.android.gms:play-services:6.1.11'
compile 'com.android.support:appcompat-v7:21.0.0'
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "com.company.name"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
...
}
}
dependencies {
compile 'org.simpleframework:simple-xml:2.7.1'
}
问题是我得到了一个错误,这个错误的消息是域层
依赖于库,而不是库本身。怎么了 在域的build.gradle中添加:应用插件:“com.android.library”
我的建议是删除域对数据的依赖性。相反,将数据提供程序注入域中。有一个nice提供了一条线索,说明不同的应用程序部分应该如何关联,以使单元测试变得轻松
另一种选择是遵循@frederick nyawaya的答案,并使用Robolectric设置单元测试。那么,在域中使用纯java是不可能的吗?通过这种方式,我们可以使用JUnit4,并且可以轻松地对其进行测试。Android项目更复杂,Java插件不知道如何处理它们。