Gradle构建一个没有类的jar

时间:2017-06-21 14:46:09

标签: java eclipse gradle

的build.gradle

apply plugin: 'java'

sourceCompatibility = 1.8
targetCompatibility = 1.8

version = '1.0'

jar {
    manifest {
        attributes 'Main-Class': 'app.Main'
    }
}

repositories {
     mavenCentral()
}

dependencies {

}

Main.java

package app;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

我需要构建一个jar,所以我可以从命令行运行它

java -Xms6000m -Xmx7100m -jar sample.jar

我的项目比“Hello World”更复杂,我试图解决的问题是我的jar只有MANIFEST个文件

Manifest-Version: 1.0
Main-Class: app.Main

我使用buildship插件在Eclipse IDE中创建了我的项目。 (我认为没有问题) 我在命令行中构建我的项目。

gradlew clean build

命令行输出

C:\Development\Workspaces\training\sample>gradlew clean build

BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
C:\Development\Workspaces\training\memoryAllocation2>

我的项目结构。

enter image description here

2 个答案:

答案 0 :(得分:3)

您的源文件与您的构建脚本不匹配。您必须将文件放在传统的src/main/java/目录中,或者更改构建脚本以告知Gradle在哪里可以找到源文件。

答案 1 :(得分:1)

将各种评论总结为一个完整的答案:

Gradle使用与Maven一样的方法,称为约定优于配置。这还包括源文件位置的约定。在没有任何配置的情况下,Gradle期望src/main/java下的应用程序的源文件。测试源可以放在src/test/java下。