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

标签 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 依赖项并构建一个 fat jar。每次我将代码拉入新的开发环境时,它都会从 Maven 中央存储库中获取。但有些开发机器没有互联网接入,为了在这些机器上构建,我想是否可以在源代码根文件夹中创建一个名为 libs 的文件夹,并使用该文件夹来加载 jar文件,例如

repositories {
   flatDir {
       dirs 'libs'
   }
}

可以吗?在我的本地计算机中哪里可以找到从 Maven Central 下载的 jar,以便我可以将它们复制到 libs 文件夹中(dropwizard 0.8.2 jar)

最佳答案

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

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

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

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

关于java - 使用本地依赖项 Gradle 构建 Fat jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33084975/

相关文章:

java - 如何修复这个 NullPointerException?

Java 垃圾收集器 : PSYoungGen grows by 4 GB after Full GC

java - 从另一个模块导入时找不到maven依赖项

android - 任务 :app:testDebugUnitTest in Android studio 执行失败

java - libGdx 与 Box2D 装载机自行车车轮接头

java - 已正确部署 REST 服务并正确配置 tomcat 管理器,但访问该服务会抛出 404

maven - Jenkins/Hudson 中的 Maven 和自由风格的软件项目有什么区别?

java - 在测试目录中运行主类

elasticsearch - 使用 gradle 设置基本插件

java - 我的 Eclipse E4 插件只适用于新工作区,workbench.xmi 不更新