从常春藤迁移到gradle问题

时间:2014-04-17 07:03:40

标签: gradle ivy

我正从常春藤搬到年级。

在常春藤我能够拥有一个属性文件,其中包含我所有的依赖项'版本

同样在发布时我更新了这个文件。

这是版本的中央控制。非常舒服。例如:

Versions.properties:


  log4j.ver=1.14
  commons-lang.ver=1.1

和ivy.xml:


  <dependencies>
    <dependency org="log4j" module="log4j" ver="log4j.ver"/>
  </dependencies>

我可以在gradle中使用相同的属性,但据说很快就会弃用属性。 gradle中的任何等效概念?

另一个问题是能够解析工作空间中的依赖关系。

我知道
  dependencies{
   compile project(':shared')
  }

语法,但我希望依赖项具有灵活性。如果项目位于工作区中,请解决它。否则,请从档案中下载。

如何实现这种行为?

由于

1 个答案:

答案 0 :(得分:1)

这应该是两个单独的问题。无论如何:

ad 1)所有弃用的都是动态属性,即引入foo = "bar"的新属性。相反,它现在是def foo = "bar",或者,如果该属性需要可以从其他构建脚本ext.foo = "bar"访问。 (如果属性拼写错误,此更改将允许Gradle 2.x失败; Gradle 1.x将至少提供弃用警告。)

请注意,消费者方面没有任何变化,即仍可通过其简单名称(例如println foo)访问该属性。请注意,它应通过ext.foo访问,即使这在某些情况下也有效。

ad 2)目前这不是一流的功能,但可以通过一些努力来实现。 (有关概念验证,请参阅https://github.com/pniederw/elastic-deps;有关更严格实施的早期版本,请参阅https://github.com/prezi/pride)。我希望这能成为2.x时间范围内的一流功能。