【发布时间】:2015-09-12 05:35:15
【问题描述】:
如果项目 libraryDependencies 包含一组特定的其他库之一(需要runtime aspectj weaving),这样我就可以在创建 Docker 映像(使用 sbt-docker)时引用下载的依赖文件。
Kamon 将 aspectj weaver 指定为“提供的”依赖项,但 AFAICT 不能从依赖这些 Kamon 库之一的项目中传递。
问题是我无法在我的插件中覆盖libraryDependencies,因为当时实际项目还没有添加任何依赖项,所以我得到一个空列表。所以我必须在项目设置了libraryDependencies 之后但在 SBT 开始下载依赖项之前添加这个依赖项。
这可能吗?我可以覆盖其他设置来实现此目的吗?
我的备份是以某种方式自己从插件中的任务下载那个aspectj jar。是否有一些 SBT 子系统可供我使用,以便 jar 文件针对(或下载到)本地 Ivy 存储库进行解析?
【问题讨论】:
-
我不确定,这对你有用吗?在设置它的库依赖项后显式启用项目上的插件。即使这样可行,如果它能自动神奇地工作,那就太好了,我同意。
-
这行得通。问题是
libraryDependencies需要由项目设置,因此我无法从插件中检查它,因为它将在项目添加其内容之前运行(在显式启用它之后)。但是allDependencies是一个计算属性,表示libraryDependencies和buildDependencies的组合,因此项目覆盖它的机会很小,让我在update出现下载之前更改后处理libraryDependencies部门。有点破解,但它的工作原理:)