I have the following simple build.gradle file:
apply plugin: \'application\'
apply plugin: \'java\'
mainClassName = \'com.kurtis.HelloGradle\'
It's due to the way application plugin works. mainClassName is a property used by application plugin, when it creates an executable jar, it doesn't need to have a Main-Class in the manifest, since it doesn't use it.
If you need to have a Main-Class in your jar, then you have to provide it vie jar configuration of the java plugin as follows:
jar {
manifest {
attributes(
'Main-Class': 'com.kurtis.HelloGradle'
)
}
}
Otherwise, just use an executable, which is generated by application plugin, whether via run task or via distributions it can create for you, with scripts to run your application and all it's dependencies.