云函数 部署方法(Java)

如何 使用 Gradle 创建 zip 部署包 和 使用 Maven 创建 jar 部署包 这两种方式来创建 zip 或 jar 包。创建完成后,可通过控制台页面直接上传包(小于 50MB),或通过把部署包上传至 COS Bucket 后,在 SCF 控制台上通过指定部署包的 Bucket 和 Object 信息,完成代码包提交。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

一、使用 Gradle 创建 zip 部署包

本节内容提供了通过使用 Gradle 工具来创建 Java 类型云函数部署包的方式。创建好的 zip 包符合以下规则,即可以由云函数执行环境所识别和调用。

·编译生成的包、类文件、资源文件位于 zip 包的根目录。

·依赖所需的 jar 包,位于 /lib 目录内。

二、环境准备

确保你已经安装 Java 和 Gradle。

·Java 11 请安装 JDK 11。

·Java 8 请安装 JDK 8。

你可以使用 OpenJDK(Linux)或通过 Java 下载安装合适你系统的 JDK。

注意:请根据你使用的 Java 版本选择匹配的 Gradle 版本,否则可能出现构建失败:

·Java 8:Gradle 2.0 及以上

·Java 11:Gradle 5.0 及以上

·Java 17:Gradle 7.3 及以上

·Java 21:Gradle 8.4 及以上

推荐使用 Gradle 8.x,可兼容 Java 8 ~ 21,覆盖主流版本。

三、Gradle 安装

Gradle 安装详情见 Gradle Installation。手工安装步骤如下:

以下提供的是:gradle 8.5,linux 环境下的安装示例

1. 单击下载 Gradle 的 二进制包 或 带文档和源码的完整包。

2. 解压包到自己所期望的目录。例如,Windows 下的 C:\\Gradle 目录或 Linux 下的 /opt/gradle/gradle-8.5 目录。

3. 将解压目录下 bin 目录的路径添加到系统 PATH 环境变量中,请对应操作系统执行以下步骤:

·Linux:通过 export PATH=$PATH:/opt/gradle/gradle-8.5/bin 完成添加。

·Windows:通过计算机 > 右键 > 属性 > 高级系统设置 > 高级 > 环境变量进入到环境变量设置页面,选择 Path 变量编辑,在变量值最后添加 ;C:\\Gradle\\bin;。

4. 在命令行执行以下命令,查看 Gradle 是否正确安装。

gradle -v

输出结果如下,则证明 Gradle 已正确安装。如有问题,请查询 Gradle 的 产品文档。

————————————————————Gradle 8.5————————————————————Build time: 2023-11-29 14:08:57 UTCRevision: 28aca86a7180baa17117e0e5ba01d8ea9feca598Kotlin: 1.9.20Groovy: 3.0.17Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023JVM: 17.0.19-ga (Tencent Company 17.0.19-ga+1)OS: Linux 6.6.47-12.tl4.x86_64 amd64

四、准备代码文件

1. 在选定的位置创建项目文件夹,例如 scf_example。

2. 在项目文件夹根目录,依次创建目录 src/main/java/ 作为包的存放目录。

3. 在创建好的目录下再创建 example 包目录,并在包目录内创建 Hello.java 文件。最终形成如下目录结构:

scf_example/src/main/java/example/Hello.java

4. 在 Hello.java 文件内输入如下代码内容:

package example;public class Hello { public String mainHandler(String name, Context context) { System.out.println("Hello world!"); return String.format("Hello %s.", name); }}

五、准备编译文件

在项目文件夹根目录下创建 build.gradle 文件并输入如下内容:

apply plugin: 'java'task buildZip(type: Zip) { from compileJava from processResources into('lib') { from configurations.runtime } }build.dependsOn buildZip

六、使用 Maven Central 库处理包依赖

如果需要引用 Maven Central 的外部包,可根据需要添加依赖,build.gradle 文件内容如下:

apply plugin: 'java'repositories { mavenCentral()}dependencies { compile ( 'com.tencentcloudapi:scf-java-events:0.0.2' )}task buildZip(type: Zip) { from compileJava from processResources into('lib') { from configurations.runtime } }build.dependsOn buildZip

通过 repositories 指明依赖库来源为 mavenCentral 后,在编译过程中,Gradle 会自行从 Maven Central 拉取依赖项,也就是 dependencies 中指明的 com.tencentcloudapi:scf-java-events:0.0.2 包。

七、使用本地 Jar 包库处理包依赖

如果已经下载 Jar 包到本地,可以使用本地库处理包依赖。在这种情况下,请在项目文件夹根目录下创建 jars 目录,并将下载好的依赖 Jar 包放置到此目录下。build.gradle 文件内容如下:

apply plugin: 'java'dependencies { compile fileTree(dir: 'jars', include: '*.jar')}task buildZip(type: Zip) { from compileJava from processResources into('lib') { from configurations.runtime }}build.dependsOn buildZip

通过 dependencies 指明搜索目录为 jars 目录下的 *.jar 文件,依赖会在编译时自动进行搜索。

八、编译打包

在项目文件夹根目录下执行命令 gradle build,应有编译输出类似如下:

Starting a Gradle Daemon (subsequent builds will be faster)BUILD SUCCESSFUL in 5s3 actionable tasks: 3 executed

如果显示编译失败,请根据输出的编译错误信息调整代码。
编译后的 zip 包位于项目文件夹内的 /build/distributions 目录内,并以项目文件夹名命名为 scf_example.zip。

九、使用 Maven 创建 jar 部署包

本节内容提供了通过使用 Maven 工具来创建 Java 类型云函数部署 jar 包的方式。

十、环境准备

确保你已经安装 Java 和 Gradle。

·Java 11 请安装 JDK 11。

·Java 8 请安装 JDK 8.

你可以使用 OpenJDK(Linux)或通过 Java 下载安装合适你系统的 JDK。

十一、Maven 安装

Maven 安装详情见 Installing Apache Maven。手工安装步骤如下:

1. 下载 Maven 的 zip 包或 tar.gz 包。

2. 解压包到自己所期望的目录。例如,Windows 下的 C:\\Maven 目录或 Linux 下的 /opt/mvn/apache-maven-3.5.0 目录。

3. 将解压目录下 bin 目录的路径添加到系统 PATH 环境变量中,请对应操作系统执行以下步骤:

·Linux:通过 export PATH=$PATH:/opt/mvn/apache-maven-3.5.0/bin 完成添加。

·Windows:通过计算机 > 右键 > 属性 > 高级系统设置 > 高级 > 环境变量进入到环境变量设置页面,选择 Path 变量编辑,在变量值最后添加 ;C:\\Maven\\bin;。

4. 在命令行下执行以下命令,查看 Maven 是否正确安装。

mvn -v

输出结果如下,则证明 Maven 已正确安装。如有问题,请查询 Maven 的 产品文档。

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)Maven home: C:\\Program Files\\Java\\apache-maven-3.5.0\\bin\\..Java version: 1.8.0_144, vendor: Oracle CorporationJava home: C:\\Program Files\\Java\\jdk1.8.0_144\\jreDefault locale: zh_CN, platform encoding: GBKOS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

十二、准备代码文件

1. 在选定的位置创建项目文件夹,例如 scf_example 。

2. 在项目文件夹根目录,依次创建目录 src/main/java/ 作为包的存放目录。

3. 在创建好的目录下再创建 example 包目录,并在包目录内创建 Hello.java 文件。最终形成如下目录结构:

scf_example/src/main/java/example/Hello.java

4. 在 Hello.java 文件内输入如下代码内容:

package example;public class Hello { public String mainHandler(String name, Context context) { System.out.println("Hello world!"); return String.format("Hello %s.", name); }}

十三、准备编译文件

在项目文件夹根目录下创建 pom.xml 文件并输入如下内容:

Java 11Java 8<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>examples</groupId> <artifactId>java-example</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>java-example</name> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <configuration> <source>11</source> <target>11</target> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>examples</groupId> <artifactId>java-example</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>java-example</name> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>

十四、使用 Maven Central 库处理包依赖

如果需要引用 Maven Central 的外部包,可以根据需要添加依赖,pom.xml 文件内容如下,添加依赖请关注 <dependencies> 部分。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>examples</groupId> <artifactId>java-example</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>java-example</name> <dependencies> <dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>scf-java-events</artifactId> <version>0.0.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>

十五、编译打包

在项目文件夹根目录下执行命令 mvn package,应有编译输出类似如下:

[INFO] Scanning for projects…[INFO][INFO] ————————————————————————[INFO] Building java-example 1.0-SNAPSHOT[INFO] ————————————————————————[INFO]…[INFO] ————————————————————————[INFO] BUILD SUCCESS[INFO] ————————————————————————[INFO] Total time: 1.785 s[INFO] Finished at: 2017-08-25T10:53:54+08:00[INFO] Final Memory: 17M/214M[INFO] ————————————————————————

如果显示编译失败,请根据输出的编译错误信息调整代码。
编译后的 jar 包位于项目文件夹内的 target 目录内,并根据 pom.xml 内的 artifactId、version 字段命名为 java-example-1.0-SNAPSHOT.jar。

赞 (0)
上一篇 4天前
下一篇 4天前