使用本地依赖项Gradle构建Fat jar

时间:2015-10-12 15:36:45

标签: java maven gradle build.gradle gradlew

我有一个build.gradle文件,如下所示

buildscript {
    repositories { jcenter() }
}

dependencies {
    compile 'io.dropwizard:dropwizard-core:0.8.2'
    compile 'io.dropwizard:dropwizard-testing:0.8.2'
}

当我运行gradle build时,它会从maven存储库下载dropwizard依赖项并构建一个胖jar。每当我在新的开发环境中提取代码时,它都会从maven中央仓库中获取。但是有些开发机器没有互联网访问权限,要在这些机器上构建,我想我是否可以在源代码根文件夹中创建一个名为libs的文件夹,并使用此文件夹来加载jar文件,如

repositories {
   flatDir {
       dirs 'libs'
   }
}

有可能吗?从我的本地机器中的maven central找到下载的jar文件,以便我可以将它们复制到libs文件夹中(dropwizard 0.8.2 jar)

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。创建以下任务:

task copyLibs(type: Copy) {
   from configurations.compile
   into 'libs'
}

运行此任务后,您将拥有一个包含所有依赖项的文件夹 libs (您可能需要更广泛的范围而不仅仅是编译 - 因此请对齐任务) 。您需要将此文件夹检查到SCM并提交它。

当然,请注意,如果您例如自动更新依赖关系,则无法自动更新依赖关系。更改版本 - 您需要手动执行或者编写一个插件来执行您需要的所有操作。