使用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
。我希望这两个模块位于同一个项目中,以便同时开发它们。
我尝试在 IntelliJ 中为
sandbox
添加模块依赖项。没有骰子。我尝试过添加 jar 引用,但没有骰子。我相信我需要在 build.gradle 文件中添加依赖项,但不知道如何添加。我已经尝试过
myLib
等。没有骰子。
compile files '<path to myLib.jar>'
在顶层
- 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')
}
是子项目和变量的所有常见配置的包装器。例如,它最常用于 Maven url 的
build.gradle
部分。有关详细信息,请参阅 Gradle - 多项目构建远程模块
当您将这些行添加到项目中时,这就是您已经在做的事情
repositories { }
如果您的项目是在 GitHub 上公开
,请使用jitpack.io 等服务。您还可以在 Bintray OSS 或 Maven Central 上设置一个帐户,以使您的库像大多数其他库一样可用。 如果您的项目是
公司内部的私有,您将需要一些 Maven 类型的服务器,无论是通用 Web 服务器,还是 Nexus 或 Artifactory,您都可以将其添加到存储库块中。
implementation("org:artifact:version")
然后照常添加
repositories {
maven { url "http://some.maven.site/" }
}
或
compile
源假设这个文件树:
includeBuild '<PATH>/myLib'
您可以这样设置您的 gradle 项目:
.
|- app
| |- src
| | |- ...
| |- build.gradle
|
|- lib
| |- src
| | |- ...
| |- build.gradle
|
|- settings.gradle
./settings.gradle
rootProject.name = 'some-project'
include 'app'
include 'lib'
./app/build.gradle
最后,确保您要从
// ...
dependencies {
// depend on sibling module lib
implementation project(':lib')
}
// ...
模块导入的内容不在基础包中。
lib
implementation fileTree(dir: '../libs', include: ['*.jar'])
implementation fileTree(dir: '../libs', include: ['*.aar'])
和
Main
。=== 库项目配置更改。 ===
Library
build.gradle
2.将 JAR 发布到本地 Maven 存储库
plugins {
id 'maven-publish'
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
repositories {
maven {
name = "localMaven"
url = uri("${System.properties['user.home']}/.m2/repository")
}
}
}
=== 主要项目配置更改。 ===
./gradlew publish
build.gradle
2.将 JAR 发布到本地 Maven 存储库
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation 'com.supun.app:photo-library:0.0.2-SNAPSHOT'
}