使用 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
简单的请求...我想使用 myLib
在 sandbox
内应用程序。我希望在同一个项目中同时开发这两个模块。
我已尝试将模块依赖项添加到 sandbox
对于 myLib
在 IntelliJ 中。没有骰子。我试过添加一个 jar 引用,没有骰子。
我相信我需要在 build.gradle 文件中添加一个依赖项,但无法弄清楚如何。我试过compile files '<path to myLib.jar>'
等。没有骰子。
最佳答案
本地模块
这是大多数 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 上设置一个帐户,让您的库像大多数其他库一样可用。
如果您的项目是公司内部的私有(private),您将需要一些 Maven 类型的服务器,无论是通用网络服务器,还是 Nexus 或 Artifactory,您都可以 add that with an addition to the repositories block.
repositories {
maven { url "http://some.maven.site/" }
}
然后像往常一样添加 compile
或 implementation
源代码
关于java - IntelliJ gradle 添加模块依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38877989/