[英]java 1.8 - gradle can't find main class
我正在尝试使用gradlew运行gradle构建。 我的文件夹结构如下所示:
src
└── main
└── java
└── hello
└── Greeting.java
这是我的build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
mainClassName = 'hello.Greeting'
sourceSets.main.java.srcDirs = ['src']
jar {
baseName = 'gs-rest-service'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
我可以成功运行./gradlew构建,但是./gradlew运行退出:
Task :run
Error: Could not find or load main class hello.Greeting
Greeting.java只是一个具有主要方法的简单类:
package main.java.hello;
public class Greeting {
public static void main(String[] args) {
System.out.println("greet");
}
}
您的包裹不正确。 更改为package hello;
它会工作。
src/main/java
是源文件夹,它不是软件包的一部分。
从java文件中的程序包定义中删除main,或删除不一致的SourceSet定义或将其更改为
sourceSets {
main {
java {
exclude 'some/unwanted/package/**'
}
}
}
我更改了目录结构,但是如果应用以下规则,则不需要这样做。
src
└── hello
└── main
└── java
└── Greeting.java
sourceSets {
hello{
main {
java {
srcDir 'src/hello/main/java'
}
}
}
}
请注意,路径必须与源集结构相同。
定义主类名称:
mainClassName='hello.main.java.Greeting'
但也可以是这样的:
mainClassName='hello.main.java.x.y.Greeting'
,如果我们希望向软件包中添加一些文件夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.