相关疑难解决方法(0)

使用Gradle构建具有依赖关系的jar

我有一个多项目构建,我在一个子项目中设置了一个任务来构建一个胖罐.我创建的任务类似于食谱中描述的任务.

jar {
  from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  manifest { attributes 'Main-Class': 'com.benmccann.gradle.test.WebServer' }
}
Run Code Online (Sandbox Code Playgroud)

运行它会导致以下错误:

原因:您无法更改未处于未解决状态的配置!

我不确定这个错误意味着什么.我还在Gradle JIRA上报告了这个问题,以防它出现问题.

uberjar gradle

108
推荐指数
9
解决办法
12万
查看次数

Gradle-没有主要的清单属性

我在运行一个由Gradle构建的JAR文件时得到的这个错误让我很生气.错误读取"没有主要清单属性,在RxJavaDemo.jar中"我试图操纵Manifest属性,但我想我忘了添加依赖项或其他东西.我究竟做错了什么?

apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'demo.MainDashboard'

dependencies {

    compile files ("H:/Processes/Development/libraries/hikari-cp/HikariCP-2.4.1.jar")
    compile files ("H:/Processes/Development/libraries/controls-fx/controlsfx.jar")
    compile files ("H:/Processes/Development/libraries/database_connections/sqlite-jdbc-3.8.6.jar")
    compile files ("H:/Processes/Development/libraries/guava/guava-18.0.jar")
    compile files ("H:/Processes/Development/libraries/rxjava/rxjava-1.0.12.jar")
    compile files ("H:/Processes/Development/libraries/rxjava-extras/rxjava-extras-0.5.15.jar")
    compile files ("H:/Processes/Development/libraries/rxjavafx/RxJavaFX-1.0.0-RC1-SNAPSHOT.jar")
    compile files ("H:/Processes/Development/libraries/rxjavaguava/rxjava-guava-1.0.3.jar")
    compile files ("H:/Processes/Development/libraries/rxjava-jdbc/rxjava-jdbc-0.6.3.jar")
    compile files ("H:/Processes/Development/libraries/slf4j/slf4j-api-1.7.12.jar")
    compile files ("H:/Processes/Development/libraries/tom-commons/tom-commons.jar")

}

sourceSets {
    main.java.srcDir "src/main/java"
    main.resources.srcDir "src/main/resources"
}

    jar { 
  manifest {
    attributes(
      "Class-Path": configurations.compile.collect { it.getName() }.join(' '))
  }
    from configurations.compile.collect { entry -> zipTree(entry) }
}
Run Code Online (Sandbox Code Playgroud)

java gradle

75
推荐指数
3
解决办法
7万
查看次数

gradle - 我如何用其他jar中的lib目录构建一个jar?

在gradle中 - 我如何在lib目录(特别是lib/enttoolkit.jar和lib/mail.jar)中的jar输出jar中嵌入jar?

jar uberjar gradle

63
推荐指数
6
解决办法
9万
查看次数

使用Gradle在清单中添加类路径

我希望我的Gradle构建脚本将完整的Classpath添加到构建后创建的JAR文件中包含的清单文件中.

例:

Manifest-Version: 1.0
Class-Path: MyProject.jar SomeLibrary.jar AnotherLib.jar
Run Code Online (Sandbox Code Playgroud)

我的构建脚本已经以这种方式向清单添加了一些信息:

jar {
    manifest {
        attributes("Implementation-Title": project.name,
            "Implementation-Version": version,
            "Main-Class": mainClassName,
    }
}
Run Code Online (Sandbox Code Playgroud)

如何获取要添加到清单的依赖项列表?


这个Java教程页面更详细地描述了如何以及为什么将类路径添加到清单中:将类添加到JAR文件的类路径中

java gradle

42
推荐指数
5
解决办法
7万
查看次数

如何在gradle中复制依赖项库JAR

我有一个这个build.gradle的runnable jar

apply plugin: 'java'
apply plugin: 'application'

manifest.mainAttributes("Main-Class" : "com.test.HelloWorld")

repositories {
    mavenCentral()
}

dependencies {
    compile (
        'commons-codec:commons-codec:1.6',
        'commons-logging:commons-logging:1.1.1',
        'org.apache.httpcomponents:httpclient:4.2.1',
        'org.apache.httpcomponents:httpclient:4.2.1',
        'org.apache.httpcomponents:httpcore:4.2.1',
        'org.apache.httpcomponents:httpmime:4.2.1',
        'ch.qos.logback:logback-classic:1.0.6',
        'ch.qos.logback:logback-core:1.0.6',
        'org.slf4j:slf4j-api:1.6.0',
        'junit:junit:4.+'
    )
}
Run Code Online (Sandbox Code Playgroud)

但它运行失败,因为依赖项jar无法找到.

然后我添加此代码:

task copyToLib(type: Copy) {
    into "$buildDir/output/libs"
    from configurations.runtime
}
Run Code Online (Sandbox Code Playgroud)

但没有改变......我找不到文件夹输出/库...

如何将依赖库libs jar复制到指定的文件夹或路径?

dependencies copy gradle

36
推荐指数
4
解决办法
3万
查看次数

如何使用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 kotlin脚本创建胖罐

正如标题所述,我想知道如何修改它gradle.build.kts以便创建一个独特jar的所有依赖项(包括kotlin lib)的任务.

我在Groovy中找到了这个示例:

//create a single Jar with all dependencies
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File Example',
            'Implementation-Version': version,
            'Main-Class': 'com.mkyong.DateUtils'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在kotlin中写出来,除了:

task("fatJar") {

}
Run Code Online (Sandbox Code Playgroud)

kotlin build.gradle build.gradle.kts gradle-kotlin-dsl

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

如何通过jar设置主类可执行的vanilla groovy项目?

我变得非常沮丧.我无法在互联网上的任何地方找到我的问题的单一,有凝聚力的答案.很多文档,但没有任何东西可以将它们组合在一起(尽管我能找到).

我只需要有人告诉我:

  • 如何设置一个groovy项目(编辑:包括放置源文件的位置,在哪些目录,目录结构等)
  • 假设我以前没有构建groovy
  • 或java之前(我有,但与我合作)
  • 以某种方式我可以指定一个依赖项(这是我的依赖项 - > https://github.com/bpsm/edn-java)所以可能使用maven或gradle
  • 一个主要类和主要方法(再次,与我合作)
  • 在构建结束时,我需要一个我可以执行的jar文件,java -jar <groovy-project>.jar打印出"hello world"

尽可能简单.

java groovy jar

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