【问题标题】:Mapping between different depencendy managers' (e.g. Maven, Gradle) dependency syntax不同依赖管理器(例如 Maven、Gradle)依赖语法之间的映射
【发布时间】:2016-03-26 00:07:06
【问题描述】:

当我浏览MvnRepository 时,我注意到了一个模式。例如,如果我想使用 Spring Framework:

使用 Maven 我需要添加:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6.SEC03</version>
</dependency>

使用 Gradle 我需要添加:

'org.springframework:spring:2.5.6.SEC03'

所以我得出的结论是如果在Maven中groupId = A,artifactId = B,version = C,我要表达它就像 Gradle 中的 'A:B:C'。 我注意到 Ivy、Grape、Buildr、SBT、Leiningen 语法有类似的模式。

它总是规则还是仅仅是 MvnRepository 的东西?例如,这里是JLIBSVM,可以在自定义存储库中找到,而在网页上只给出了如何在 Maven 中使用它。它是否与所有其他依赖管理器兼容?

【问题讨论】:

    标签: maven gradle dependency-management


    【解决方案1】:

    是的,虽然周围还有一些修饰符

    【讨论】:

      【解决方案2】:

      你也可以在 Gradle 中使用这个语法:

      dependencies {
          compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
      }
      

      还有其他类似的变体:

      dependencies {
          compile (
              [group: 'foo', name: 'foo', version: '0.1'],
              [group: 'bar', name: 'bar', version: '0.1']
          )
      }
      

      此外,并非所有部分都始终是必需的。例如,如果您在系统的平面目录中只有一个 jar 文件,您可以说:

      runtime name: 'name'
      

      注意jar 前缀被省略了。

      Gradle 和大多数其他依赖项管理器支持声明存在于 Maven 存储库中的依赖项,因为 Maven 无处不在。您提到的项目确实托管在 Maven 存储库中,而不是您可能习惯的 Maven Central。例如,使用 Gradle 时,您必须在 repositories 部分中指明要使用的 Maven 存储库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        • 2012-06-30
        • 2012-12-27
        • 1970-01-01
        • 1970-01-01
        • 2019-01-30
        相关资源
        最近更新 更多