我交换我的项目到使用摇篮和内部Sonatype的的Nexus主办我的依赖。我的核心项目依赖于库项目A和库项目A对库项目的依赖B.
我的问题是,当我加入力霸我的主要项目中,我得到这个错误: 模块版本com.example:力霸:1.1所依赖的库,但不是库本身
我没有问题JAR依赖与同构建脚本添加库项目。我见过的人与地方成功地做这个(项目)的Android库,但没有一个人与Maven回购这样做。
这是在摇篮中的错误还是我错误配置库建立?
核心项目生成
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:'机器人'
库{
行家{
URL的http://本地主机:8081 /关系/内容/资料库/发行/
}
行家{
URL的http://本地主机:8081 /关系/内容/资料库/中央/
}
}
安卓{
compileSdkVersion 19
buildToolsVersion19.0.0
defaultConfig {
的minSdkVersion 14
targetSdkVersion 19
}
}
依赖{
编译com.android.support:support-v4:+
编译(com.example:力霸:1 +')
}
力霸构建
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:机器人库
安卓{
compileSdkVersion 19
buildToolsVersion19.0.0
defaultConfig {
的minSdkVersion 9
targetSdkVersion 17
版本code =3
VERSIONNAME =1.2
}
安卓{
sourceSets {
主要 {
manifest.srcFile的AndroidManifest.xml
java.srcDirs = ['src'中]
resources.srcDirs = ['src'中]
aild.srcDirs = ['src'中]
renderscript.srcDirs = ['src'中]
res.srcDirs = ['水库']
assets.srcDirs = ['资产']
}
}
}
库{
mavenCentral()
}
依赖{
编译(com.example:LibB:1 +')
} ...
LibB构建
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:机器人库
安卓{
compileSdkVersion 19
buildToolsVersion19.0.0
defaultConfig {
的minSdkVersion 9
targetSdkVersion 17
版本code =1
VERSIONNAME =1.0
}
安卓{
sourceSets {
主要 {
manifest.srcFile的AndroidManifest.xml
java.srcDirs = ['src'中]
resources.srcDirs = ['src'中]
aild.srcDirs = ['src'中]
renderscript.srcDirs = ['src'中]
res.srcDirs = ['水库']
assets.srcDirs = ['资产']
}
}
}
库{
mavenCentral()
}
依赖{
} ...
编辑:添加-info输出误差
*出了什么问题:
发生问题配置项目:GradleTest。
>未能通知项目评估听众。
>模块版本com.example:力霸:1 +依赖于库,但不是库本身
编辑2:添加我的本地Maven上传脚本力霸
应用插件:行家
应用插件:签约
组=为com.example
版本= defaultConfig.versionName
配置{
档案 {
extendsFrom configurations.default
}
}
签约{
需要有{(释放)及&安培; gradle.taskGraph.hasTask(uploadArchives)}
签署configurations.archives
}
uploadArchives {
配置= configurations.archives
repositories.mavenDeployer {
beforeDeployment {MavenDeployment部署 - > signing.signPom(部署)}
库(网址:sonatypeRepo){
认证(用户名:sonatypeUsername,
密码:sonatypePassword)
}
pom.project {
名称'COM,例如
包装AAR
说明无
网址的https://内部github上的链接
SCM {
网址供应链管理:混帐@ https://开头内部github上的链接
连接'混帐@ https://开头内部github上的链接
developerConnection'混帐@ https://开头内部github上的链接
}
许可{
许可 {
命名示例
URL示例
发行示例
}
}
开发商{
开发商{
ID示例
命名示例
电子邮件示例
}
}
的groupId为com.example
artifactId的rootProject.name //力霸
版本defaultConfig.versionName
}
}
}
解决方案
这个问题已经摒弃了更高版本的摇篮和Android摇篮插件的。似乎刚刚被提前释放的问题。
I'm switching my project over to using Gradle and an internal SonaType Nexus for hosting my dependencies. My core project depends on library project A and library project A has a dependency on library project B.
My issue is that as soon as I add LibA to my main project I get this error: "Module version com.example:LibA:1.1 depends on libraries but is not a library itself"
I have no issues adding library projects with jar dependencies with the same build script. I have seen people doing this successfully with LOCAL (in the project) android libraries but no one doing it with maven repos.
Is this a bug in gradle or did I misconfigure the library builds?
Core Project Build
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
maven {
url "http://localhost:8081/nexus/content/repositories/releases/"
}
maven {
url "http://localhost:8081/nexus/content/repositories/central/"
}
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
dependencies {
compile 'com.android.support:support-v4:+'
compile('com.example:LibA:1.+')
}
LibA Build
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 17
versionCode = "3"
versionName = "1.2"
}
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile ('com.example:LibB:1.+')
} ...
LibB Build
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 17
versionCode = "1"
versionName = "1.0"
}
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
repositories {
mavenCentral()
}
dependencies {
} ...
Edit: Adding -info output for the error.
* What went wrong:
A problem occurred configuring project ':GradleTest'.
> Failed to notify project evaluation listener.
> Module version com.example:LibA:1.+ depends on libraries but is not a library itself
Edit 2: Adding my local maven upload script for LibA
apply plugin: 'maven'
apply plugin: 'signing'
group = "com.example"
version = defaultConfig.versionName
configurations {
archives {
extendsFrom configurations.default
}
}
signing {
required { has("release") && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
uploadArchives {
configuration = configurations.archives
repositories.mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: sonatypeRepo) {
authentication(userName: sonatypeUsername,
password: sonatypePassword)
}
pom.project {
name 'com-example'
packaging 'aar'
description 'none'
url 'https://internal github link'
scm {
url 'scm:git@https://internal github link'
connection 'git@https://internal github link'
developerConnection 'git@https://internal github link'
}
licenses {
license {
name 'example'
url 'example'
distribution 'example'
}
}
developers {
developer {
id 'example'
name 'example'
email 'example'
}
}
groupId "com.example"
artifactId rootProject.name //LibA
version defaultConfig.versionName
}
}
}
解决方案
This issue has gone away with the later versions of Gradle and the Android Gradle Plugin. Seems to have just been an early release bug.
上一篇:是否有组件的一个.net应用程序的最大数量?应用程序、组件、数量、最大
下一篇:IDE"无法解析@风格/ Theme.Appcompat"使用V7兼容支持主题时,风格、主题、QUOT、IDE