java 使用“gradle init”将maven迁移到gradle,但忽略了父项目的pom项目中声明的依赖关系

m4pnthwp  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(137)

我有一个由maven构建的多项目:https://github.com/tiancai110a/parent-project
其结构如下所示:

parent. 
   | 
   |--core
   |  |
   |  |
   |------service
   |  |
   |-------webapp

coreservicewebapp为jar包,parent为pom包,依赖关系如pic:
https://i.stack.imgur.com/sD4Cl.png
所有的junit都来源于parentservicewebapp也依赖于core
然后运行gradle init,从项目根目录中的pom.xml生成build.gradle
那么我假设在build.gradle中的某个地方有junit的相关性,例如:

dependencies {testImplementation 'junit:junit-dep:4.11'}

如果我在一个项目中执行相同的操作,它将从pom.xml配置进行转换:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

但它没有,它只是忽略了parent/pom.xml中定义的junit依赖关系,然后当然我无法构建,因为我没有声明单元依赖关系,为什么,我如何将此依赖关系转换为build.gradle

ufj5ltwl

ufj5ltwl1#

您是否查看了Gradle官方文档中有关如何执行此操作的信息?Docs
我已经检查了您的回购,它看起来像Gradle init所做的是一个烂摊子:它会为您拥有的每个模块创建一个应用程序文件夹,这是您从Gradle init菜单中选择“应用程序”时它会执行的操作...看起来它没有正确检测到Maven项目。
我的建议是初始化一个空的新项目,然后手动将代码作为模块移入,或者删除使用之前的Gradle init添加的所有内容,查看文档并再次尝试迁移。

相关问题