我有一个多项目构建,我在一个子项目中设置了一个任务来构建一个胖罐.我创建的任务类似于食谱中描述的任务.
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上报告了这个问题,以防它出现问题.
我在运行一个由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) 在gradle中 - 我如何在lib目录(特别是lib/enttoolkit.jar和lib/mail.jar)中的jar输出jar中嵌入jar?
我希望我的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文件的类路径中
我有一个这个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复制到指定的文件夹或路径?
我在Gradle 4.6中有一个简单的项目,并希望制作一个可执行的jar.我试过shadow,gradle-fatjar-plugin,gradle-one-jar,spring-boot-gradle-plugin插件,但他们都没有增加我的依赖性声明implementation(我没有任何compile的).它适用compile于gradle-one-jar插件,但我想有implementation依赖.
非常感谢你!
正如标题所述,我想知道如何修改它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) 我变得非常沮丧.我无法在互联网上的任何地方找到我的问题的单一,有凝聚力的答案.很多文档,但没有任何东西可以将它们组合在一起(尽管我能找到).
我只需要有人告诉我:
java -jar <groovy-project>.jar打印出"hello world"尽可能简单.
gradle ×6
java ×4
jar ×2
uberjar ×2
build.gradle ×1
copy ×1
dependencies ×1
fatjar ×1
groovy ×1
kotlin ×1