Я работаю над AndroidStudio, и у меня есть проект, структура которого:
МойПроект1
- |--- Общий модуль
- |--- ModuleSocket(зависимость ModuleCommon)
- |--- МодульДемо
Я хочу загрузить ModuleCommon и ModuleDemo в свою локальную службу нексуса, я буду использовать ModuleCommon или (и) ModuleSocket в другом проекте, который мой сценарий градации (фрагмент):
- ModuleCommon — build.gradle:
apply plugin: 'maven'
def isReleaseBuild() {
return VERSION_NAME.contains("SNAPSHOT") == false
}
def getRepositoryUsername() {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = GROUP
pom.artifactId = "ModuleCommon"
pom.version = "0.0.1"
repository(url: RELEASE_REPOSITORY_URL) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
}
task androidJavadocs(type: Javadoc) {
options.encoding = "UTF-8"
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
}
- ModuleSocket - build.gradle: этот фрагмент аналогичен ModuleCommon - build.gradle, за исключением зависимостей:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile ('xmrk:rkandroid:0.0.1')
}
- МойПроект1 - build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
repositories {
maven {url "http://192.168.1.34:8081/nexus/content/repositories/releases"}
maven {url "http://192.168.1.34:8081/nexus/content/repositories/snapshots"}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
repositories {
maven {url "http://localhost:8081/nexus/content/repositories/releases"}
maven {url "http://localhost:8081/nexus/content/repositories/snapshots"}
}
}
}
- град.свойства:
GROUP=xmrk
SNAPSHOT_REPOSITORY_URL=http://localhost:8081/nexus/content/repositories/snapshots/
RELEASE_REPOSITORY_URL=http://localhost:8081/nexus/content/repositories/releases/
NEXUS_USERNAME=myname
NEXUS_PASSWORD=mypassword
С помощью приведенного выше сценария я успешно загружаю свою библиотеку ModuleCommon и ModuleSocket на свой сервер связи, но когда я использую ModuleSocket, я получаю сообщение об ошибке:
Ошибка: не удалось устранить: xmrk:ModuleCommon:unspecified Открыть файл
Показать в диалоговом окне структуры проекта
Кто-нибудь спасет меня? Я чувствую, что мой случай похож на зависимость библиотеки Android Gradle с зависимостью от библиотеки с использованием Nexus, но есть небольшая разница и ошибка diff.