相关疑难解决方法(0)

运行Maven项目的主要类

我创建了一个使用Maven构建的简单控制台Java应用程序.是否有一种方法可以使用maven命令从命令行运行主类(不需要任何参数),如:

mvn run-app com.example.MainClass
Run Code Online (Sandbox Code Playgroud)

java maven-2 maven maven-exec-plugin

254
推荐指数
2
解决办法
28万
查看次数

如何使用Gradle 4.4创建包含所有依赖项的jar?

这个问题关系到这一个.

我得到了这个Gradle任务:

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'rpi-sense-hat-lib',
                'Implementation-Version': version,
                'Main-Class': 'io.github.lunarwatcher.pi.sensehat.Tests'
    }
    baseName = project.name
    from { 
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    with jar
}
Run Code Online (Sandbox Code Playgroud)

并且只有一个依赖项,将测试依赖项放在一边:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    testImplementation group: 'junit', name: 'junit', version: '4.12'
}
Run Code Online (Sandbox Code Playgroud)

从IDE运行正常.但是,当我部署到我的Raspberry Pi(或gradlew fatJar在本地使用jar 结果)时,我得到以下异常:

$ java -jar java-sense-hat-1.0a.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
    at io.github.lunarwatcher.pi.sensehat.UtilsKt.getSenseHat(Utils.kt:18)
    at io.github.lunarwatcher.pi.sensehat.SenseHat.<init>(SenseHat.java:12)
    at io.github.lunarwatcher.pi.sensehat.Tests.main(Tests.java:9)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java gradle kotlin

7
推荐指数
1
解决办法
3977
查看次数

标签 统计

java ×2

gradle ×1

kotlin ×1

maven ×1

maven-2 ×1

maven-exec-plugin ×1