【发布时间】:2015-08-13 13:26:47
【问题描述】:
问题:
我正在尝试创建一个可以包含在应用程序中的 Android 库:
// Application's build.gradle
compile 'com.mycompany:mylibrary:1.0.0'
就我而言,我正在使用 Artifactory 并且我已经使上述工作正常。问题是当我尝试运行我缺少资源的应用程序时。问题似乎是我的库中的代码依赖于未包含在发布到 Artifactory
的 jar 中的资源// Code in library, throws exception because <resource> is not included in the jar
getString(R.string.<resource>)
问题:
发布到 Artifactory 时如何将资源包含在 jar 中?目前,它只包括类文件。这是我当前用于发布的 gradle.build:
// Android Library - build.gradle
{
// ... Other build.gradle settings go here
//==========================================================
// ARTIFACTORY SETTINGS
//==========================================================
buildscript {
repositories {
maven {
url "${artifactory_contextUrl}/plugins-release"
credentials {
username = "${artifactory_user}"
password = "${artifactory_password}"
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3"
}
}
apply plugin: "com.jfrog.artifactory"
apply plugin: 'maven-publish'
artifactory {
contextUrl = "${artifactory_contextUrl}"
publish {
repository {
repoKey = 'libs-release-local'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
defaults {
publications ('mavenJava')
}
}
resolve {
repository {
repoKey = 'libs-release'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'com.mycompany'
artifactId 'mylibrary'
version '1.0.0'
artifact(sourceJar)
}
}
}
}
【问题讨论】:
-
能否请您也发布您项目的文件系统布局?尤其是“src”下的哪些文件夹,以及丢失的资源文件所在的位置。
-
@Jolta,感谢您的评论。事实证明,在创建 Android 依赖库时,我需要生成一个 .aar。 .aar 文件包含所需的一切。我已经在下面发布了我更新的 build.gradle 文件。
标签: android maven gradle android-library artifactory