【发布时间】:2019-02-14 15:37:20
【问题描述】:
我正在为 Android 构建一个 aar 库,但我遇到了一个问题。 POM 和 ARR 文件未上传。
有一个错误
为丢失的文件“F:\Android\Personal_Project\sampleMavenLib\sinalib\build\outputs\aar\sinalib-release.aar”跳过上传。 跳过缺少文件“F:\Android\Personal_Project\sampleMavenLib\sinalib\build\publications\Production\pom-default.xml”的上传。
我检查了这两个路径,aar 文件在那里并且生成了,但是 pom 文件没有任何路径
这是我的毕业典礼
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
}
}
ext {
bintrayRepo = 'maven'
bintrayName = 'sinalib'
publishedGroupId = 'come.sinarahimi.sinalib'
libraryName = 'Sinalib'
artifact = 'sinalib'
libraryDescription = 'This view is a container that supports diagonal scroll and fling gesture. It is based on AOSP HorizontalScrollView.'
siteUrl = 'https://github.com/Sinarahimi/sampleMavenLib'
gitUrl = 'https://github.com/Sinarahimi/sampleMavenLib.git'
libraryVersion = '1.0.2'
developerId = 'sinarahimi'
developerName = 'Sina RAHIMI'
developerEmail = 'develop.rahimi95@gmail.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
publishing {
publications {
Production(MavenPublication) {
artifact("$buildDir/outputs/aar/sinalib-release.aar")
groupId publishedGroupId
artifactId artifact
version libraryVersion
//The publication doesn't know about our dependencies, so we have to manually add them to the pom
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
//Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
configurations.compile.allDependencies.each {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
bintray {
// Get Bintray credential from environment variable
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStrea(
))
user = properties.getProperty('user')
key = properties.getProperty('apikey')
override = true
pkg {
repo = bintrayRepo
name = project.name
userOrg = 'sinara'
licenses = allLicenses
desc = libraryDescription
websiteUrl = siteUrl
vcsUrl = gitUrl
version {
name = libraryVersion
}
publish = true
}
publications = ['Production']
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
}
【问题讨论】:
标签: android maven gradle pom.xml android-library