我们有2个使用Gradle和maven构建的Java多模块(复合)项目(位于2个存储库中)。 Gradle项目依赖于Maven项目,我们需要从反射(reflect)在Gradle项目中的Maven项目中获取更改。 Gradle项目使用存储库> mavenLocal>内容过滤通过本地Maven存储库引用Maven项目。 (即使Gradle不鼓励使用mavenLocal,我们在这里也没有更好的选择)
repositories {
mavenLocal {
content {
includeGroupByRegex "REGEX"
}
}
maven {
url "REPO_URL"
}
}
当通过命令执行Gradle构建时,更改Maven项目将反射(reflect)在gradle项目中。我们也可以在IntelliJ IDEA中打开maven和Gradle项目。但是,当浏览源代码时(假设Gradle项目实现了Gradle项目的接口(interface),并且当我们单击Gradle项目的已实现类声明中的接口(interface)时),它将指向本地maven存储库中的源jar中的类。有没有一种方法可以将IDEA配置为指向已经导入到IDE中的maven项目上的确切源。
请注意以下几点:
最佳答案
如果我们假设
(来自Maven项目)和
Maven模块
Gradle 模块
如this answer from intellij和this answer referred in the comments中所述,模块的顺序和库依赖在集成中很重要。我们需要按如下所示将所需的maven子模块手动添加到相应的gradle-sub-module,并在从本地存储库解析相同的库依赖项之前手动将其向上移动。
module:gradle-project-parent> module:gradle-sub-module-impl> main>依赖关系
然后,您将能够按预期从gradle项目链接导航到Maven项目源。