将外部 jar 依赖替换为本地 intellij 项目

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。有人知道有什么好的简单方法可以做到这一点吗?

Chr*_*iki 5

使用复合构建

\n

您的用例正是 Gradle 中复合构建的用途。该文档甚至提到了您的确切用例:

\n
\n

复合构建允许您[\xe2\x80\xa6]组合通常独立开发的构建,例如在应用程序使用的库中尝试修复错误时

\n
\n

复合构建允许您临时轻松地用该库的本地可用构建项目替换外部依赖库。(它甚至可以与多个不同的依赖项一起使用。)

\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\n
Run Code Online (Sandbox Code Playgroud)\n

请注意,两个项目目录 don\xe2\x80\x99t 实际上必须是同级目录。我\xe2\x80\x99只是为了简单起见才这样做的。在我的最小示例构建中,这两个settings.gradle文件可以为空。这两个构建脚本如下所示。

\n

projectA/build.gradle

\n
plugins {\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}\n
Run Code Online (Sandbox Code Playgroud)\n

projectB/build.gradle

\n
plugins {\n    id \'java-library\'\n}\n\ngroup = \'com.example\'\nversion = \'1.2.3\'\n
Run Code Online (Sandbox Code Playgroud)\n

运行示例

\n

在命令行上

\n

在 下projectA/,只需运行./gradlew --include-build ../projectB build(或您\xe2\x80\x99 感兴趣的任何其他 Gradle 任务)。确保使用正确的projectB 目录路径。该--include-build选项会自动即时创建复合构建。

\n

在 IntelliJ IDEA 中

\n

您还可以在 IntelliJ 中创建复合构建。要做到这一点:

\n
    \n
  1. 像往常一样导入projectA(通过其build.gradle文件以确保IntelliJ自动使用Gradle配置)。
  2. \n
  3. 在Gradle工具窗口中,单击按钮+(\xe2\x80\x9cLink Gradle Project\xe2\x80\x9d)并选择build.gradleprojectB的文件。
  4. \n
  5. 右键单击 Gradle 工具窗口中的projectA,然后选择\xe2\x80\x9cComposite Build Configuration\xe2\x80\x9d。在打开的对话框中,选择projectB并单击\xe2\x80\x9cOK\xe2\x80\x9d。
  6. \n
  7. 在 Gradle 工具窗口中,单击按钮 (\xe2\x80\x9cReload All Gradle Projects\xe2\x80\x9d)。
  8. \n
\n

那\xe2\x80\x99就是它。您现在应该能够使用项目 A 及其本地可用的依赖项项目 B。

\n