Java 我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?
我们有两个使用Gradle和maven构建的java多模块(复合)项目(位于两个存储库中)。Gradle项目依赖于maven项目,我们需要从maven项目中获得反映在Gradle项目中的更改。Gradle项目是指通过使用repositories>mavenLocal>content filtering的本地maven repo来实现的maven项目。(尽管Gradle不鼓励提及mavenLocal,但我们这里没有更好的选择) 当我们通过命令执行gradle构建时,maven项目的变化反映在gradle项目中 我们也可以在IntelliJ IDEA中打开maven和Gradle项目。但是当浏览源代码时(假设Gradle项目实现了来自Gradle项目的接口,当我们在Gradle项目的已实现类声明中单击该接口时),它指向本地maven repo中源代码jar中的类。是否有一种方法可以配置IDEA以指向maven项目上已经导入IDE的确切源代码 请注意:Java 我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?,java,maven,gradle,intellij-idea,Java,Maven,Gradle,Intellij Idea,我们有两个使用Gradle和maven构建的java多模块(复合)项目(位于两个存储库中)。Gradle项目依赖于maven项目,我们需要从maven项目中获得反映在Gradle项目中的更改。Gradle项目是指通过使用repositories>mavenLocal>content filtering的本地maven repo来实现的maven项目。(尽管Gradle不鼓励提及mavenLocal,但我们这里没有更好的选择) 当我们通过命令执行gradle构建时,maven项目的变化反映在gra
- Gradle项目指的是maven项目的精确快照
- 使用IntelliJ IDEA 2019.1.3(社区版)
- JAR也已经部署到maven本地存储库中 (来自maven项目)和
- 在此上下文中,项目设置>模块如下所示
- 模块:maven项目父级
- 模块:maven子模块api
- 模块:maven子模块impl
- 模块:gradle项目父级
- 模块:渐变子模块api
- 模块:渐变子模块impl
- 模块:maven子模块api
- 库:maven子模块api(依赖于本地repo) 然后,您将能够按照预期从gradle项目链接导航到maven项目源。如果我们假设
- JAR也已经部署到maven本地存储库中 (来自maven项目)和
- 在此上下文中,项目设置>模块如下所示
- 模块:maven项目父级
- 模块:maven子模块api
- 模块:maven子模块impl
- 模块:gradle项目父级
- 模块:渐变子模块api
- 模块:渐变子模块impl
- 模块:maven子模块api
- 库:maven子模块api(依赖于本地repo)
- 如果我们假设
然后,您将能够按照预期从gradle项目链接导航到maven项目源。在构建JAR(现在位于maven repo中)时,您是否构建了源JAR?当您看到反编译的JAR时,您是否也看到了“附加源”选项?请参阅:当您说可以在IntelliJ中同时打开maven和Gradle项目时,您的意思是作为单独的项目,还是作为同一项目中的模块?因为如果将它们作为模块包含在同一个项目中,IntelliJ应该允许您从一个模块导航到另一个模块other@DariusX. 感谢您指出,它是从源jar反编译的。jar也被部署到maven本地存储库中。我检查了编辑器中加载的类的路径,该类具有以下语法<代码>\\\--sources.jar\\ClassName.java编辑器中显示的类是不可编辑的(就像我们浏览类时,多个链接的maven项目之间的方法)@afterburner这些maven和Gradle项目也是复合/多模块项目。我尝试将它们添加为单独的项目(工具窗口>添加项目)以及现有源中的模块(文件>新建>现有源中的模块)。我甚至尝试创建一个空项目,并将两个项目都添加为模块。但是在所有场景中,依赖Maven模块的浏览类/方法都会从本地Maven repo中的sources.jar指向源代码,而不是指向打开的Maven项目中的确切源代码?这应该会自动完成。这有用吗?在构建JAR(现在在maven repo中)时,您是否构建了源JAR?当您看到反编译的JAR时,您是否也看到了“附加源”选项?请参阅:当您说可以在IntelliJ中同时打开maven和Gradle项目时,您的意思是作为单独的项目,还是作为同一项目中的模块?因为如果将它们作为模块包含在同一个项目中,IntelliJ应该允许您从一个模块导航到另一个模块other@DariusX. 感谢您指出,它是从源jar反编译的。jar也被部署到maven本地存储库中。我检查了编辑器中加载的类的路径,该类具有以下语法<代码>\\\--sources.jar\\ClassName.java编辑器中显示的类是不可编辑的(就像我们浏览类时,多个链接的maven项目之间的方法)@afterburner这些maven和Gradle项目也是复合/多模块项目。我试图将它们添加为
repositories {
mavenLocal {
content {
includeGroupByRegex "REGEX"
}
}
maven {
url "REPO_URL"
}
}