如何将 Gradle + Google Sheets API + Java 制作成一个可下载的程序?
How to make Gradle + Google Sheets API + Java into a single downloadable program?
截至目前,我已经通过使用 Google API 组合 Java 和 Google 工作表制作了一个聊天机器人应用程序,这需要我使用 Gradle .到目前为止,我只能使用终端通过 Gradle 运行 程序。
在我的最终结果中,我希望能够将此程序发送给某人并且他们应该能够安装它或 运行 它尽可能简单,而不必 运行 通过终端。
我怀疑此人可能需要将 Gradle 下载到 运行 文件,因为 Google API 需要它。所以我认为最好的方法是发送一个带有 Gradle 安装程序和 java 文件的 zip 文件(或其他文件),并以某种方式使其自动安装所有内容。这可能吗?
这是我的 build.gradle 文件的样子
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'SheetsQuickstart'
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.api-client:google-api-client:1.23.0'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
compile 'com.google.apis:google-api-services-sheets:v4-rev516-1.23.0'
compile(group: 'org.springframework', name: 'spring-core', version:'4.3.11.RELEASE')
}
jar {
doFirst {
manifest {
if (!configurations.compile.isEmpty()) {
attributes(
'Class-Path':configurations.compile.collect{it.toURI().toString()}.join(' '),
'Main-Class': 'SheetsQuickstart')
}
}
}
}
假设 google 工作表 api 是 gradle 中的依赖项,你不能通过 gradle 构建一个 jar 文件然后 运行 jar 作为一个可执行文件?
build.gradle 文件示例:
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'com.github.johnrengelman.shadow'
group = 'your.package.path.here'
version = '0.0.1-SNAPSHOT'
mainClassName = 'your.package.path.here.MainClassName'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
dependencies {
compile(group: 'org.springframework', name: 'spring-core', version:'4.3.11.RELEASE')
}
repositories {
mavenCentral()
}
jar {
doFirst {
manifest {
if (!configurations.compile.isEmpty()) {
attributes(
'Class-Path':configurations.compile.collect{it.toURI().toString()}.join(' '),
'Main-Class': 'your.package.path.here.MainClassName')
}
}
}
对于一个 reg min 构建文件应该足够了,然后添加你的依赖项。
截至目前,我已经通过使用 Google API 组合 Java 和 Google 工作表制作了一个聊天机器人应用程序,这需要我使用 Gradle .到目前为止,我只能使用终端通过 Gradle 运行 程序。
在我的最终结果中,我希望能够将此程序发送给某人并且他们应该能够安装它或 运行 它尽可能简单,而不必 运行 通过终端。
我怀疑此人可能需要将 Gradle 下载到 运行 文件,因为 Google API 需要它。所以我认为最好的方法是发送一个带有 Gradle 安装程序和 java 文件的 zip 文件(或其他文件),并以某种方式使其自动安装所有内容。这可能吗?
这是我的 build.gradle 文件的样子
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'SheetsQuickstart'
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.api-client:google-api-client:1.23.0'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
compile 'com.google.apis:google-api-services-sheets:v4-rev516-1.23.0'
compile(group: 'org.springframework', name: 'spring-core', version:'4.3.11.RELEASE')
}
jar {
doFirst {
manifest {
if (!configurations.compile.isEmpty()) {
attributes(
'Class-Path':configurations.compile.collect{it.toURI().toString()}.join(' '),
'Main-Class': 'SheetsQuickstart')
}
}
}
}
假设 google 工作表 api 是 gradle 中的依赖项,你不能通过 gradle 构建一个 jar 文件然后 运行 jar 作为一个可执行文件?
build.gradle 文件示例:
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'com.github.johnrengelman.shadow'
group = 'your.package.path.here'
version = '0.0.1-SNAPSHOT'
mainClassName = 'your.package.path.here.MainClassName'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
dependencies {
compile(group: 'org.springframework', name: 'spring-core', version:'4.3.11.RELEASE')
}
repositories {
mavenCentral()
}
jar {
doFirst {
manifest {
if (!configurations.compile.isEmpty()) {
attributes(
'Class-Path':configurations.compile.collect{it.toURI().toString()}.join(' '),
'Main-Class': 'your.package.path.here.MainClassName')
}
}
}
对于一个 reg min 构建文件应该足够了,然后添加你的依赖项。