我正在尝试制作一个可执行程序文件来分发我的Java程序。通常我会通过运行以下命令来制作该文件:
$ echo '#!/usr/bin/java -jar' > program
$ cat my-program.jar >> program
$ chmod +x program
据我所知,Gradle应该能够发行软件。我不确定这是否扩展到发布操作系统版本,还是仅仅是包维护人员要使用的文件。 as covered here
我希望能够让Gradle准备分发文件以制作软件包。像这样:
distributions
└── project_1.1-1
└── Folder
├── control
└── usr
└── local
└── bin
└── program
到目前为止,我已经在build.gradle
中尝试过此操作:
distributions {
write '#!/usr/bin/java -jar'
into program
Jar {
from sourceSets.main.output
dependsOn configurations.runtimeClasspath
from {
configurations.runtimeClasspath.findAll {
it.name.endsWith('jar') }.collect { zipTree(it) }
}
}
} into program
}
答案 0 :(得分:0)
要复制echo
命令,只需要将write
的JAR文件名作为program
中的第二行。请注意,您不是在这里创建二进制文件。而是要创建一个bash脚本,该脚本会在JAR文件中自动运行java
解释器。
答案 1 :(得分:0)
您可能应该使用gradle应用程序插件创建可运行的发行版,例如看到以下问题:
否则,您可以编写类似于以下问题的文件:create version.txt file in project dir via build.gradle task
task versionTxt() {
doLast {
new File("$projectDir/version.txt").text = """
#!/usr/bin/java -jar
#...
"""
}
}
中更改权限