IntelliJ gradle 添加模块依赖

新手上路,请多包涵

使用 IntelliJ 2016.2。

使用 Gradle 2.14.1

我有 2 个项目,每个项目都有自己的 build.gradle 文件和单独的目录结构:

 myLib (meant to be jarred and used by others)
  - build.gradle
  - settings.gradle
  - src/main/java/...

sandbox (spring boot web app)
  - build.gradle
  - settings.gradle
  - src/main/java/...
  - src/main/resources/...

希望你明白了。在 IntelliJ 中,我在同一级别(无子项目)具有以下模块结构:

 - myLib
- sandbox

简单的请求…我想在 sandbox 应用程序中使用 myLib —。我希望在同一个项目中同时开发这两个模块。

我已经尝试在 IntelliJ 中为 sandbox 添加模块依赖项,用于 myLib 。没有骰子。我试过添加一个 jar 引用,没有骰子。

我相信我需要在 build.gradle 文件中添加一个依赖项,但不知道如何添加。我试过 compile files '<path to myLib.jar>' 等。没有骰子。

原文由 emiles 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 671
2 个回答

本地模块

这是大多数 Gradle 项目遵循的模式,其中有一个库,然后是一个使用该库的示例应用程序 - ref Gradle docs

  - app/
    - build.gradle
    - src/main/java  # where your main class would be
 - library/
    - build.gradle
    - src/main/java  # dependencies of the app module
 - settings.gradle
 - build.gradle

在那个顶级 settings.gradle 你有

include ':library', ':app'

app/build.gradle 中,编译包含的项目

dependencies {
    compile project(':library')
}

基本上,顶级 build.gradle 是子项目和变量的所有常见配置的包装器。例如,它最常用于 Maven url 的 repositories { } 部分。有关详细信息,请参见 Gradle - Multi-project builds

遥控器模块

以上内容适用于在本地工作,但假设您想与许多其他开发人员共享您的存储库而不让他们下载额外的源代码。然后您会将其他库发布到远程服务器。

当您将这些行添加到您的项目时,这就是您已经在做的事情

implementation("org:artifact:version")

如果您的项目 在 GitHub 上公开,请使用 jitpack.io 之 类的服务。您还可以在 Bintray OSS 或 Maven Central 上设置一个帐户,让您的库像大多数其他库一样可用。

如果您的项目 在您的公司内是私有的,您将需要一些 Maven 类型的服务器,无论是通用 Web 服务器,还是 Nexus 或 Artifactory,您都可以 将其添加到 repositories 块中。

 repositories {
    maven { url "http://some.maven.site/" }
}

然后像往常一样添加 compileimplementation 来源

原文由 OneCricketeer 发布,翻译遵循 CC BY-SA 4.0 许可协议

Gradle 3.1 终于解决了这个问题。现在原生支持复合构建。更多 在这里。简而言之,将这一行添加到 sandbox settings.gradle 文件中——

 includeBuild '<PATH>/myLib'

如果你不能升级 Gradle,那么你唯一的希望就是将 mylib 工件发布到本地 maven 仓库并将 mavenLocal() 添加到 sandbox/build.gradle。

原文由 darwinbaisa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题