我正在尝试使用 gradle 的 maven-publish
插件导出在 Kotlin 中开发的 Android 库模块。aar文件已成功生成并导出,但是没有向其添加任何依赖项 - 甚至连Kotlin文件都没有。以下是基于此答案的插件配置:
apply plugin: 'maven-publish'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ext {
releaseRepository = "s3://****/maven/releases"
snapshotsRepository = "s3://****/maven/snapshots"
artifactRepository = "$buildDir/outputs/aar/render-engine-release.aar"
_version = properties.getProperty('lib.version')
_artifact = properties.getProperty('lib.name')
_group = properties.getProperty('lib.group')
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "source"
}
publishing {
publications {
maven(MavenPublication) {
groupId _group
artifactId _artifact
version _version
artifact (sourceJar)
artifact artifactRepository
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.allDependencies.each {
if(_group != null && (_artifact != null || "unspecified" == _artifact) && _version != null) {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', _group)
dependencyNode.appendNode('artifactId', _artifact)
dependencyNode.appendNode('version', _version)
}
}
}
}
}
repositories {
maven {
if(_version.endsWith('-SNAPSHOT')) {
url snapshotsRepository
} else {
url releaseRepository
}
credentials(AwsCredentials) {
accessKey AWS_ACCESS_KEY
secretKey AWS_SECRET_KEY
}
}
}
}
好的,继续阅读链接问题的答案,我已经实现了这个来解决我的问题。我的最后publish.gradle是:
apply plugin: 'maven-publish'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ext {
releaseRepository = "s3://****/maven/releases"
snapshotsRepository = "s3://****/maven/snapshots"
artifactRepository = "$buildDir/outputs/aar/render-engine-release.aar"
_version = properties.getProperty('lib.version')
_artifact = properties.getProperty('lib.name')
_group = properties.getProperty('lib.group')
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "source"
}
publishing {
publications {
maven(MavenPublication) {
groupId _group
artifactId _artifact
version _version
artifact(sourceJar)
artifact artifactRepository
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.getAllDependencies().each { Dependency dep ->
if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified")
return
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dep.group)
dependencyNode.appendNode('artifactId', dep.name)
dependencyNode.appendNode('version', dep.version)
if (!dep.transitive) {
def exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
exclusionNode.appendNode('groupId', '*')
exclusionNode.appendNode('artifactId', '*')
} else if (!dep.properties.excludeRules.empty) {
def exclusionsNode = dependencyNode.appendNode('exclusions')
dep.properties.excludeRules.each { ExcludeRule rule ->
def exclusionNode = exclusionsNode.appendNode('exclusion')
exclusionNode.appendNode('groupId', rule.group ?: '*')
exclusionNode.appendNode('artifactId', rule.module ?: '*')
}
}
}
}
}
}
repositories {
maven {
if (_version.endsWith('-SNAPSHOT')) {
url snapshotsRepository
} else {
url releaseRepository
}
credentials(AwsCredentials) {
accessKey AWS_ACCESS_KEY
secretKey AWS_SECRET_KEY
}
}
}
}
问题内容: 使用IntelliJ 2016.2。 使用Gradle 2.14.1 我有2个项目,每个项目都有自己的build.gradle文件和单独的目录结构: 希望您能明白。在IntelliJ中,我具有以下相同级别的模块结构(无子项目): 简单的请求…我想在应用程序内使用。我要在同一个项目中同时开发两个模块。 我尝试在IntelliJ中为添加模块依赖关系。没有骰子。我尝试添加一个jar参考,没有
使用IntelliJ 2016.2. 使用Gradle 2.14.1 我尝试为Intellij中的添加一个模块依赖项到。没有骰子。我试着添加一个jar引用,没有骰子。 我认为我需要在build.gradle文件中添加一个依赖项,但不知道如何添加。我尝试了等。
我有2个maven项目A和B。 B对A的胖jar有一个maven编译时依赖项。 在将B作为maven项目导入时,a作为模块依赖项而不是目标jar添加。 有没有办法禁用此功能? B的pom。xml(依赖项部分) <代码> A的pom.xml(工件细节): <代码> 问题: 这两个是Intellij项目中的模块。无论我以何种方式导入它们,项目B的依赖项列表都将项目A显示为模块依赖项,而不是项目A的ja
当使用一些第三方库时,我将依赖项添加到模块的build.gradle文件中。 或者我添加一个插件 有时,库需要向应用的build.gradle文件添加依赖项。 这些依赖项和插件之间有什么区别 为什么不能在一个构建中设置它们。格雷德尔档案? 所有的建议都很感谢,我在搜索这方面的信息时遇到了困难