簡體   English   中英

如何使用 Gradle 任務運行兩個不同的主類

[英]How to run two different Main Classes with a Gradle task

我對 gradle 很陌生,不熟悉 Groovy 語言/構建腳本語法等。

我有一個主要的 Class,它的開頭非常好

gradle run

但是我現在想創建一個新的任務(uitest),應該用類似的東西來調用它:

gradle -q uitest

它應該像上面一樣運行,但使用另一個 mainClass。

到目前為止,我的構建腳本如下所示:

plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'

}
mainClassName = 'streetsim.ui.StreetSimApp'

javafx {
    version = "11.0.2"
    modules = ['javafx.controls', 'javafx.fxml']
}

task uitest(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'streetsim.ui.TemporaryUITestPool.main'
}

group 'groupname'
version '1.0-SNAPSHOT'


sourceCompatibility = 11

repositories {
    jcenter()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.0'
}


test {
    useJUnitPlatform()
}

編輯:我將任務更改如下:

task uitest(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'streetsim.ui.TemporaryUITestPool'
}

現在我收到以下錯誤:

Error: JavaFX runtime components are missing, and are required to run this application

正如下面另一個答案的評論中提到的,如果可能的話,我不想添加 VM arguments,因為我不想需要本地 JavaFX 安裝

因為需要下面的這個 FX,所以您需要將以下內容添加到 java 命令(並根據上面的評論刪除.main)

--add-modules javafx.controls,javafx.fxml --module-path <path_to_modules>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM