所以我有一个IntelliJ IDEA项目(项目A),其中包括一堆外部JAR库.我目前正在处理其中一个外部JAR库(项目B),我想用我计算机上的本地项目(项目B)替换它.
简而言之:
这样,当我运行项目A时,它在本地使用项目B,而不是在外部使用Jar B.有谁知道做这件事有什么简单的好办法吗?
所以我有一个IntelliJ IDEA项目(项目A),其中包括一堆外部JAR库.我目前正在处理其中一个外部JAR库(项目B),我想用我计算机上的本地项目(项目B)替换它.
简而言之:
这样,当我运行项目A时,它在本地使用项目B,而不是在外部使用Jar B.有谁知道做这件事有什么简单的好办法吗?
您的用例正是Gradle中复合构建的目标.The docs甚至提到您的确切使用 case :
复合生成允许您[…]组合通常独立开发的版本,例如,在您的应用程序使用的库中try 错误修复时
复合构建允许您临时轻松地将外部依赖库替换为该库的本地可用构建项目.(它甚至可以处理多个不同的依赖项.)
下面是如何为您的两个项目设置此设置(为简明起见,省略了Gradle Wrapper个文件和Java源代码):
├── projectA
│ ├── build.gradle
│ └── settings.gradle
└── projectB
├── build.gradle
└── settings.gradle
请注意,这两个项目目录实际上不必是同级目录.我这么做只是为了简单.在我的最小示例构建中,两个settings.gradle
文件可能是空的.这两个构建脚本如下所示.
projecta/build.gradle
plugins {
id 'java'
}
dependencies {
implementation 'com.example:projectB:1.2.+'
}
repositories {
// where you get the projectB dependency from normally
}
ProjectB/build.gradle
plugins {
id 'java-library'
}
group = 'com.example'
version = '1.2.3'
在projectA/
以下,只需运行./gradlew --include-build ../projectB build
(或您感兴趣的任何其他Gradle任务).确保使用到ProjectB目录的正确路径.选项自动创建飞翔上的复合构建.
还可以在IntelliJ中创建复合构建.为此:
build.gradle
文件确保IntelliJ自动使用Gradle配置).build.gradle
文件.就这样.您现在应该能够将ProjectA与其本地可用的依赖项ProjectB一起使用.