相关疑难解决方法(0)

如何使用Gradle创建具有实现依赖性的可执行胖jar

我在Gradle 4.6中有一个简单的项目,并希望制作一个可执行的jar.我试过shadow,gradle-fatjar-plugin,gradle-one-jar,spring-boot-gradle-plugin插件,但他们都没有增加我的依赖性声明implementation(我没有任何compile的).它适用compilegradle-one-jar插件,但我想有implementation依赖.

非常感谢你!

java executable-jar gradle gradle-plugin fatjar

32
推荐指数
5
解决办法
1万
查看次数

如何在gradle.build中使用fatjar插件时指定主类

我有兴趣在一个可执行的jar文件中构建一个包含所有模块依赖项和外部jar的jar,我将能够运行它java -jar myApp.jar.

我有模块A依赖于模块B.目前我正在使用gradle,我的build.gradle脚本如下所示:

    apply plugin: 'fatjar'
    description = "A_Project"
    dependencies {
      compile project(':B_Project')
      compile "com.someExternalDependency::3.0"
    }
Run Code Online (Sandbox Code Playgroud)

当我通过gradle命令构建它时:clean build fatjar按预期创建一个胖罐"A.jar".但是,如上所述,运行它会导致: no main manifest attribute, in A.jar 如何修改我的build.gradle文件并指定主类或清单?

jar build uberjar gradle intellij-13

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

无法使用Gradle和Kotlin运行生成的JAR文件

我有一个配置了Gradle和Kotlin的项目。这是一个命令行实用程序,我希望能够从终端运行生成的jar。但是我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
    at com.autentia.impt.MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

我的gradle配置如下:

buildscript {
    ext.kotlin_version = '1.2.20'
    ext.junit_platform_version = '1.0.1'
    ext.junit_version = '5.0.0'
    ext.moshi_version = '1.5.0'
    ext.jna_version = '4.5.0'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.junit.platform:junit-platform-gradle-plugin:$junit_platform_version"
    }
}

version '1.0-SNAPSHOT'

apply plugin: 'kotlin'
apply plugin: 'application'
apply plugin: 'org.junit.platform.gradle.plugin'

mainClassName = 'com.autentia.impt.MainKt'

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib"
    implementation "org.jetbrains.kotlin:kotlin-reflect"
    implementation "com.squareup.moshi:moshi:$moshi_version" …
Run Code Online (Sandbox Code Playgroud)

java jar gradle kotlin

5
推荐指数
1
解决办法
727
查看次数

使用gradle/clojuresq构建clojure

我正在尝试使用gradle/Clojuresque来构建clojure代码,运行它,并获得uberjar.我使用提示从http://dev.clojure.org/display/doc/Getting+Started+with+Gradle,https://bitbucket.org/kotarak/clojuresque/wiki/Getting%20Started"无法找到我们Grab for Clojure(Clojuresque)的.bpsm:edn-java:0.4.3'错误.

这是成绩脚本.

buildscript {
    repositories { 
        maven { url "http://clojars.org/repo" } 
        mavenCentral()
    }
    dependencies {
        classpath "clojuresque:clojuresque:1.7.0" 
    }
}

apply plugin: 'clojure'

clojure.aotCompile = true

repositories {
    flatDir dirs: project.file("lib/runtime")
    maven { url "http://clojars.org/repo" }
}
Run Code Online (Sandbox Code Playgroud)

有了gradle buildtask,没有错误,我有一个jar文件,但是我没有看到生成的任何类文件; 我不认为生成的jar什么都不包含,特别是当我比较手动构建的结果时(从命令行编译clojure源到类(AOT)(不使用lein)).

.
??? build
?   ??? libs
?   ?   ??? clojure.jar
?   ??? tmp
?       ??? jar
?           ??? MANIFEST.MF
??? build.gradle
??? src
    ??? hello
        ??? core.clj
Run Code Online (Sandbox Code Playgroud)

这是core.clj

(ns …
Run Code Online (Sandbox Code Playgroud)

jar clojure gradle clojuresque

4
推荐指数
1
解决办法
2107
查看次数