我使用maven发布插件将aar文件发布到maven存储库。然而,我注意到编译依赖项没有添加到pom中。甚至在我添加了传递属性之后。我使用的是com.android.tools.build:gradle:1.1.3
关于如何解决这个问题有什么提示吗?
build.gradle
publishing {
publications {
sdkAar(MavenPublication) {
artifacts {
groupId 'com.test'
artifactId 'my_sdk'
version currentVersion
artifact 'build/outputs/aar/release.aar'
artifact androidJavadocsJar {
classifier "javadoc"
}
}
}
sdkJar(MavenPublication) {
groupId 'com.test'
artifactId 'my_sdk_jar'
version currentVersion
artifact 'build/libs/release.jar'
artifact androidJavadocsJar {
classifier "javadoc"
}
}
}
repositories {
maven {
credentials {
username archiva_username
password archiva_password
}
}
}
}
提前致谢
请尝试此代码,我尝试成功。
//generate pom nodes for dependencies
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.each { dependency ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
}
}
依赖项未自动添加,您需要添加发布标记。
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version = libraryVersion
artifactId libraryArtifactId
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
pom.withXml {
def dependencies = asNode().appendNode('dependencies')
configurations.getByName("_releaseCompile").getResolvedConfiguration().getFirstLevelModuleDependencies().each {
def dependency = dependencies.appendNode('dependency')
dependency.appendNode('groupId', it.moduleGroup)
dependency.appendNode('artifactId', it.moduleName)
dependency.appendNode('version', it.moduleVersion)
}
}
}
}
如果希望将依赖项自动添加到 POM,则需要使用组件功能。以下是用户指南中的一个示例:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
这很重要
。我不知道的是Android插件是否设置了自己的软件组件。我看不出任何关于这些事情的参考。
请记住,新的发布机制目前正在酝酿中,也许这就是为什么Android插件目前不提供任何直接支持。
如果您真的想要使用发布插件,您可以获取工件的运行时依赖项,并使用用户指南中描述的语法将它们手动添加到POM中。我不推荐这种方法,因为它很乱,而且容易出错。
我有一个分层的2.4项目,如下所示: 对于每个子项目,我想发布一个.jar文件和一个.pom文件,并将它们存储在maven存储库中。所有常规命令都正确导出到 *.pom 文件中。 假设 中有一个 依赖项。此依赖项将不包含在生成的 *.pom 文件中。 我的gradle发布结构如下所示: ...我做错什么了吗?为什么我的依赖项不会被导出到*. pom文件中?有什么解决方法吗?为了澄清,我期望上面示例
我将buildSrc文件夹添加到我的android项目中,以便在我的gradle脚本中使用kotlin-dsl。现在我想在buildSrc main中添加一个包含函数的kotlin文件,我将在gradle.kts脚本中使用该文件(buildSrc->src->main->kotlin->thefile.kt)。在其中一个中,我想使用。我看到这可以在中使用。如何将这种依赖关系包含到buildSrc文
maven shade插件正在创建一个名为dependency reduced pom的文件。xml和artifactname都有阴影。jar并将它们放置在基本目录中。 这是虫子吗?应位于目标目录中。有解决办法吗?
我试图在pom中为ojdbc14添加依赖项。xml 操作系统: WindowsXP(sp3)IDE: ECLIPSE(Juno)DB: Oracle 10G 我在eclipse中使用m2e插件。 我遵循添加ojdbc14的步骤。maven本地存储库中的jar > 创建一个新项目 执行命令“mvn install:install file-Dfile=“D:\oracle10g\jdbc\lib\o
我正在尝试写添加发送电子邮件给我用java编写的应用程序,我发现了一个很好的指南。http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/ 但是如何添加和依赖项? 我添加了依赖项,但我得到 “线程”main“中的异常java.lang.RuntimeException:javax.mail.Messa