Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle如何从依赖项目复制所有运行库库,包括JAR_Gradle - Fatal编程技术网

Gradle如何从依赖项目复制所有运行库库,包括JAR

Gradle如何从依赖项目复制所有运行库库,包括JAR,gradle,Gradle,我有一个多模块的gradle项目,正在建设中。 现在我想实现一个任务,它将实际准备一个可交付的包,其中包含所有构建模块及其所有依赖项,以及从module-1.jar运行主类所需的所有其他内容 为了实现这一点,我希望将所有运行时依赖项与一些特定于环境的配置文件(属性、XML)一起复制到一个文件夹中,然后将它们打包到一个归档文件中 假设我有这样的结构: Root Project / \ module-1 module-2 模块1依赖于模块2 module-1.g

我有一个多模块的gradle项目,正在建设中。 现在我想实现一个任务,它将实际准备一个可交付的包,其中包含所有构建模块及其所有依赖项,以及从module-1.jar运行主类所需的所有其他内容

为了实现这一点,我希望将所有运行时依赖项与一些特定于环境的配置文件(属性、XML)一起复制到一个文件夹中,然后将它们打包到一个归档文件中

假设我有这样的结构:

    Root Project
      /      \
 module-1   module-2
模块1依赖于模块2

module-1.gradle:

task runModule1 << {
    // Invoke some methods to prepare the module-1 run
    // such as setting module-1 runLocation
    copy {from configurations.runtime into runLocation}
}

dependencies {
    compile project(':module-2')
    //... Other thirds party dependencies
}
module-1.gradle:

任务runModule1您所描述的内容与所提供的内容完全相同。它将为您处理所有依赖项复制等

假设
module-1
包含您的主类,则将以下内容添加到
module-1
配置中:

apply plugin: 'application'
mainClassName = "org.stackoverflow.example.MyApp"
由于
module-1
正确声明了对
module-2
的依赖关系,您现在可以这样运行它:

gradle module-1:run
:module-2:compileJava
:module-2:processResources UP-TO-DATE
:module-2:classes
:module-1:compileJava
:module-1:processResources UP-TO-DATE
:module-1:classes
:module-1:run

但是module-2.jar不是(…)?为什么不使用
application
plugin?谢谢Opal。我解决了jar名称问题。我将问题稍作修改,以更好地反映我正在努力实现的目标。起初我说我想运行module-1.jar,这让你提出了应用程序插件,但我的问题仍然站得住脚。为什么module-2.jar没有被复制,因为它是一个有效的运行时依赖项?我刚刚意识到应用程序插件包括一个分发插件,可以配置它来完成额外的环境准备工作,然后将特定文件与jar放在一起。是的,你的回答帮助我解决了问题。非常感谢你。至于结节-2.jar,在我看来没有被复制就像一个bug。