Sla*_*ion 4 java jar intellij-idea dependency-management gradle
所以我有一个intellij IDEA项目(项目A),其中包含一堆外部jar库。我目前正在开发这些外部 jar 库之一(项目 B),我想将其替换为我计算机上的本地项目(项目 B)。
所以,简而言之:我有项目 A,它依赖于 jar B 我想用我的本地项目(项目 B)替换 jar B
这样,当我运行项目 A 时,它使用本地项目 B 而不是外部 Jar B。有人知道有什么好的简单方法可以做到这一点吗?
您的用例正是 Gradle 中复合构建的用途。该文档甚至提到了您的确切用例:
\n\n\n复合构建允许您[\xe2\x80\xa6]组合通常独立开发的构建,例如在应用程序使用的库中尝试修复错误时
\n
复合构建允许您临时轻松地用该库的本地可用构建项目替换外部依赖库。(它甚至可以与多个不同的依赖项一起使用。)
\n这里\xe2\x80\x99d 介绍了你如何\xe2\x80\x99d 为你的两个项目进行设置(为了简洁起见,省略了Gradle Wrapper文件和 Java 源代码):
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 projectA\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 projectB\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\nRun Code Online (Sandbox Code Playgroud)\n请注意,两个项目目录 don\xe2\x80\x99t 实际上必须是同级目录。我\xe2\x80\x99只是为了简单起见才这样做的。在我的最小示例构建中,这两个settings.gradle文件可以为空。这两个构建脚本如下所示。
projectA/build.gradleplugins {\n id \'java\'\n}\n\ndependencies {\n implementation \'com.example:projectB:1.2.+\'\n}\n\nrepositories {\n // where you get the projectB dependency from normally\n}\nRun Code Online (Sandbox Code Playgroud)\nprojectB/build.gradleplugins {\n id \'java-library\'\n}\n\ngroup = \'com.example\'\nversion = \'1.2.3\'\nRun Code Online (Sandbox Code Playgroud)\n在 下projectA/,只需运行./gradlew --include-build ../projectB build(或您\xe2\x80\x99 感兴趣的任何其他 Gradle 任务)。确保使用正确的projectB 目录路径。该--include-build选项会自动即时创建复合构建。
您还可以在 IntelliJ 中创建复合构建。要做到这一点:
\nbuild.gradle文件以确保IntelliJ自动使用Gradle配置)。build.gradleprojectB的文件。那\xe2\x80\x99就是它。您现在应该能够使用项目 A 及其本地可用的依赖项项目 B。
\n| 归档时间: |
|
| 查看次数: |
3039 次 |
| 最近记录: |