我正在查看使用gradle配置的项目(github上的netflix / karyon),并且能够轻松地构建战争(“gradle war”)。到目前为止,这一切都很好。
战争在哪里?这很容易,只需要做find . -type f \( -name "*.war" \)
...猜也许调试标志也会告诉我那个?
战争中有什么?只有示例项目的代码,这是伟大的,漂亮的和轻量级的。你会期待什么。
依赖项在哪里?现场无处可去。我确实知道它们位于隐藏的gradle点目录中的某个神奇缓存中。
如何获取依赖项列表?
我想我可以'清洁干净&& gradle war> out'并检查maven.org GET的输出文件?我尝试了“gradle依赖”并且“构建成功”但没有列出依赖项。
我还尝试了“工作”的eclipse插件,创建了一个.project文件。但就是这样。没有向构建路径添加任何内容,也没有可用的库。
是的我知道它运行是因为我可以使用gradle jetty插件成功运行webapp。 (也是魔术)
所以问题:
是否有一个gradle命令用于“找出依赖关系并列出它们或更好地将它们提取到目录”
为什么eclipse插件不起作用? (A)在eclipsify步骤中如何正确识别源代码需要做什么,以及(B)只是一个问题,Eclipse如何知道jar文件的神奇位置和编码?
是否有用于gradle的jboss插件?或者将工作的gradle / jetty项目迁移到不会导致过早老化的工作gradle / jboss项目的最佳实践?
答案 0 :(得分:6)
在我看来,karyon是一个多级项目,而根项目没有依赖项,因此你没有输出gradle dependencies
没有为根项目输出。所以你应该和gradle :karyon-core:dependencies
一起去获得更有趣的东西。
Gradle在其缓存中保留依赖关系,缓存位于~/.gradle/caches/artifacts-<number>/filestore
,但它的缓存适用于所有项目,而不仅仅是特定项目。如果您确实需要将所有依赖项复制到目录,则可以使用与此类似的副本:
task copyDeps(type: Copy) {
from configurations.compile
into "$projectDir/deps"
}
然后gradle copyDeps
会将所有编译依赖项复制到项目的deps
目录中。
如果你坚持在lib目录中拥有所有依赖项,那么你需要指定flat dir repository:
repositories {
flatDir {
dirs 'lib'
}
}
不幸的是,我无法帮助你解决其他两个问题。