【问题标题】:Why do xml configs of gradle dependencies go with "Gradle__" prefix? Intellij IDEA 13为什么 gradle 依赖项的 xml 配置带有“Gradle__”前缀? Intellij IDEA 13
【发布时间】:2013-12-15 13:20:57
【问题描述】:

带有 Gradle 1.9 和 vertx 的 Java Spring 项目。本地梯度分布。 build.gradle 的几行

apply plugin 'java'
apply plugin 'groovy'
apply plugin 'idea'

buildscript {
    repositories {
        jcenter()
    }
}

repositories {
mavenCentral()
}

dependencies {
            ...
            compile 'org.springframework:spring-context-support:3.2.5.RELEASE'
            compile 'org.springframework:spring-aop:3.2.5.RELEASE'
            compile 'org.springframework:spring-aspects:3.2.5.RELEASE'
            ...
}

我有一个从 git 下载的现有 gradle 项目,其中包含名为 spring-aop_3_2_5_RELEASE.xml 的 .idea/libraries 文件夹中的 xml 配置,例如,我们可以在其中找到 xml 标记 <library name="spring-aop-3.2.5.RELEASE">...</library>。 在我导入这个项目后,新文件Gradle__spring-aop_3_2_5_RELEASE.xml 出现了,只有library 标签的name 属性不同:Gradle: spring-aop-3.2.5.RELEASE。所以我有依赖项的重复 xml 配置。我想知道为什么我的 gradle 添加了那个前缀。

【问题讨论】:

  • “已经下载的jars”是什么意思?您是否手动向 Eclipse 项目添加了一些其他 Jar?所有依赖项都需要在 dependencies 块中声明,并由 Gradle 管理。
  • 我的意思是,它被导入到 IDEA 现有的 Intellij 项目中。
  • 为什么有一个现有的 IntelliJ 项目?导入 Gradle 构建应该会创建一个新的 IntelliJ 项目,并且您不应该手动向该项目添加依赖项。相反,您应该在 Gradle 构建中声明所有依赖项。
  • 我的想法表达错误,是导入的gradle项目。据我了解,.idea/libraries 文件夹中有 xml 配置,它们是从 gradle 依赖项生成的,例如“cglib_2_2.xml”,我们可以在其中找到标签<library name="cglib-2.2">...</library>。导入项目后,新文件“Gradle__cglib.xml”出现,只有library标签的name属性不同:“Gradle:cglib-2.2”。所以我没有重复的 jars 但重复的 xml 配置,主要问题是如何删除 name 属性中的前缀“Gradle:”?
  • 听起来你有一些旧的 XML 文件。删除它们,然后重新导入 Gradle 构建。

标签: java maven intellij-idea gradle


【解决方案1】:

前缀是硬编码的,IDEA 13 需要重新导入您在 IDEA 12 中创建的旧 Gradle 项目。这并不明显,但在下一次更新中会有通知。

在 Gradle 生成的项目中,您可以从版本控制中排除库文件,对于使用 Maven 时也可以忽略的 .iml 文件也是如此。其他文件仍然可以共享(如代码样式、运行配置、检查配置文件等)。 Check this document了解详情。

【讨论】:

    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多