在Groovy gradle项目中找不到或加载主类

时间:2018-09-27 08:55:09

标签: java gradle groovy

我有一些时髦的应用程序,我想用gradle打包在可执行的jar中。 问题是jar完成后出现错误:无法找到或加载主类。 这是我的build.gradle:

group 'com.demo'
version '1.0-SNAPSHOT'

 apply plugin: 'groovy'
 apply plugin: 'java'
 apply plugin: 'idea'
 apply plugin:'application'
 mainClassName = 'com.demo.App'


 buildscript {
      repositories {
          mavenCentral()
      }
      dependencies {}
 }

  repositories {
   mavenCentral()
  }
  // java version dependency
   sourceCompatibility = 1.8
   targetCompatibility = 1.8

  jar {
baseName = 'cim-configurator'
version =  '0.1.0'
manifest {
    attributes("Build-Time": new Date().format("yyyy-MM-dd HH:mm:ss"),
            "Build-Jdk": System.getProperty("java.version"),
            "Built-By": System.getProperty("user.name"),
            "Created-By": "Gradle",
            "Main-Class": "com.demo.App"
    )
  }
}

这是文件层次结构:

com.demo
   ActiveMq
   App
   Database
   Rbac
   Run.groovy
   Service

2 个答案:

答案 0 :(得分:1)

我认为使用uberjar可以解决您的问题。对我来说,它也有类似的情况。

答案 1 :(得分:0)

我在Groovy&Gradle项目中有这个exact same problem。这是the answer that fixed this problem

TL; DR

通过将以下插件添加到build.gradle中的插件块中,来使用Shadow-jar plugin

plugins {
    id 'com.github.johnrengelman.shadow' version '5.0.0'
}

然后运行./gradlew shadowJar

您将获得一个jar文件emailer-all.jar,该文件可以运行。