IntelliJ gradle添加模块依赖

emi*_*les 33 java intellij-idea 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/...
Run Code Online (Sandbox Code Playgroud)

希望你能得到这张照片.在IntelliJ中,我有以下模块结构,在同一级别(没有子项目):

- myLib
- sandbox
Run Code Online (Sandbox Code Playgroud)

简单的请求......我想myLibsandbox应用程序中使用.我想在同一个项目中同时开发这两个模块.

我试着增加一个模块依赖于sandboxmyLib内部的IntelliJ.没有骰子.我试过添加一个jar参考,没有骰子.

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

cri*_*007 52

本地模块

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

 - module/
    - build.gradle
    - src/main/java
 - library/
    - build.gradle
    - src/main/java
 - settings.gradle
 - build.gradle
Run Code Online (Sandbox Code Playgroud)

在那个顶级settings.gradle你有

include ':library', ':module'
Run Code Online (Sandbox Code Playgroud)

module/build.gradle,你编译包含项目

dependencies {
    compile project(':library')
}
Run Code Online (Sandbox Code Playgroud)

基本上,顶级build.gradle是子项目和变量的所有常见配置的包装器.例如,它最常用于repositories { }Maven URL的一个部分.有关详细信息,请参阅Gradle - 多项目构建

遥控模块

以上内容适用于本地工作,但是假设您希望与许多其他开发人员共享您的repo,而无需下载额外的源代码.然后您将其他库发布到远程服务器.

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

如果您的项目在公司内私有的,那么您将需要一些Maven类型的服务器,无论是通用Web服务器,还是Nexus或Artifactory,您可以通过添加到存储库块添加它.

repositories {
    maven { url "http://some.maven.site/" }
}
Run Code Online (Sandbox Code Playgroud)

然后正常添加compileimplementation来源

  • `在 org.gradle.api.Project 类型的根项目“My-Project-Name”上找不到参数 [../My-Library-Name] 的方法 include()。` (2认同)

dar*_*isa 6

最终Gradle 3.1解决了这个问题。现在,本机支持合成版本。这里更多。简而言之,将此行添加到沙盒settings.gradle文件中-

includeBuild '<PATH>/myLib'
Run Code Online (Sandbox Code Playgroud)

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