无法运行gradle多项目

问题描述 投票:0回答:1

我正在尝试使用 gradle 构建一个基本的多项目,如 Structuring Projects with Gradle

中的建议

项目结构如下:

enter image description here

测试子项目中的Main.java如下:

package org.example;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
根项目下的

setting.gradle.kts
如下:

rootProject.name = "GradleTest"
include("test")

build.gradle.kts
看起来像这样:

plugins {
    id("java")
    id("application")
}

application {
    var mainClass = "org.example.Main"
}

group = "org.example"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1")
}

tasks.getByName<Test>("test") {
    useJUnitPlatform()
}

当我尝试在根项目下运行

./gradlew run
时,出现以下错误:

> Task :test:run FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test:run'.
> No main class specified and classpath is not an executable jar.

* Try:
> Run with --stacktrace option to get the stack trace.

有人可以建议我在这里缺少什么吗?

谢谢

java gradle gradle-kotlin-dsl gradlew multi-project
1个回答
0
投票

此问题已解决。出现差异的原因是我遵循当前版本的 Gradle (

8.7
) 的文档,而我的 Gradle 版本是
7.5
。事实证明,两个版本之间在 build.gradle.kts 中定义主类的方式存在显着差异。

所以根据

gradle 7.5
的文档 mainClass 应该这样定义:

application {
    mainClass.set("org.example.Main")
}
© www.soinside.com 2019 - 2024. All rights reserved.