假设我有一个基本的Java应用程序,还有一个用于集成测试的额外特定测试套件(在Gradle中使用testing{suites{...}}
DSL定义)。我想将这个测试套件打包并分发为一个独立的自包含的东西,将org.junit.platform.console.ConsoleLauncher
作为Main-Class
,并且只需要一个JRE来运行。
如果你有一个基本的java应用程序,Gradle的applcation
插件为你提供了一组方便的任务,可以将你的src/main
代码+依赖项打包到一个带有bin
+ libs
文件夹的tar/zip中。因此,您将得到一个归档到tar/zip中的独立包,并且您只需要JRE来运行它。这些任务被命名为distTar
/distZip
,用于相应地生成tar
/zip
,或者还有一个assembleDist
,用于同时生成两种类型的存档。
我如何创建自己的distSpecificTestSuite(Tar|Zip)
任务,它将只打包我需要的测试套件+它的依赖项到一个独立的可分发文件中?
1条答案
按热度按时间tuwxkamq1#
我是这样解决这个问题的。因此,假设我的自定义测试套件(
testIntegration
)声明如下:然后,为了从这个自定义测试套件中生成可执行的“分发”,并以原生Gradle方式执行,我创建了额外的任务(类似于
application
插件为src/main
代码提供的开箱即用的任务),并声明了一个自定义distribution
,如下所示:上述
distributions
配置为您创建了以下附加任务:integrationTestsDistZip
/distTar
/distJar
和installIntegrationTestsDist
因此,Gradle将为您准备一个“发行版”,其中将包含
bin
和lib
文件夹。所有jar(包括integration-tests.jar
本身)都放在lib
中,bin
包含用于在默认JVM上运行测试套件的windows/unix脚本,这些脚本具有来自lib
的所有必要的类路径