当前位置: 首页 > 知识库问答 >
问题:

如何将 gradle 'compile project' 依赖项添加到已发布的 *.pom?

田德运
2023-03-14

我有一个分层的2.4项目,如下所示:

Root
|- subProject1
|- subProject2
|- subProject3

对于每个子项目,我想发布一个.jar文件和一个.pom文件,并将它们存储在maven存储库中。所有常规编译('com.example:awesome-lib')命令都正确导出到 *.pom 文件中。

假设 subProject2 中有一个编译项目 (':subProject1') 依赖项。此依赖项将不包含在生成的 *.pom 文件中。

我的gradle发布结构如下所示:

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            groupId project.group
            artifactId jar.baseName
            version project.version
        }
    }
}

...我做错什么了吗?为什么我的编译项目依赖项不会被导出到*. pom文件中?有什么解决方法吗?为了澄清,我期望上面示例中的结果是subProject2.pom声明一个依赖项subProject1.jar.

共有1个答案

薄涵衍
2023-03-14

经过广泛的搜索,并浪费了几个小时,我终于找到了解决方案。问题似乎出在 gradle 中的执行顺序。当我的依赖项写入 *.pom 文件时,子项目之间的依赖项尚未解决。

修复结果非常简单。我所需要做的就是替换这个:

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            groupId project.group
            artifactId jar.baseName
            version project.version
        }
    }
}

…使用此选项(请注意包装器):

afterEvaluate { project ->

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
                groupId project.group
                artifactId jar.baseName
                version project.version
            }
        }
    }

}

afterEvaluate块迫使gradle等待内容,直到子项目相关性得到解决,从而得到正确的*。pom文件。

有关gradle构建生命周期和在Evalue ate之后的更多详细信息,请参阅gradle留档。

 类似资料:
  • npm是否有安装依赖作为对等依赖的选项,如yarn选项,而不是手动添加它例如: 感谢@Broncha,更新问题的更多说明 问题是如何向项目添加对等依赖。那就是 将依赖项添加到package.json中的“dependencies”中, 如何安装将其添加到package.json?中的“对等依赖”的依赖项

  • 我使用的是Android studio版本 在项目级分级中: 模块级别等级: 当我导入它时,它发生错误 导入此时 xml错误 错误图片 在xml中添加此标记时发生错误 为此给出解决方案!!!

  • 我尝试了以下链接:https://docs.microsoft.com/en-us/azure/devops/artifacts/get-start-maven?view=azure-devops

  • 我使用maven发布插件将aar文件发布到maven存储库。然而,我注意到编译依赖项没有添加到pom中。甚至在我添加了传递属性之后。我使用的是com.android.tools.build:gradle:1.1.3 关于如何解决这个问题有什么提示吗? build.gradle 提前致谢

  • 我正在使用JBOSS EAP 6.1和JDK 1.6。我已将所有依赖项注册为静态模块。我对JDK API有依赖性 在部署期间,我面临以下问题: java。lang.NoClassDefFoundError:javax/crypto/CipherInputStream java。lang.NoClassDefFoundError:org/omg/CORBA/portable/IDLEntity ja

  • 本文向大家介绍android-gradle 如何添加依赖项,包括了android-gradle 如何添加依赖项的使用技巧和注意事项,需要的朋友参考一下 示例 下面的示例描述了如何在app /模块的build.gradle文件中声明三种不同类型的直接依赖关系: