前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云Java SDK maven使用方式的详细介绍

腾讯云Java SDK maven使用方式的详细介绍

原创
作者头像
用户7118204
修改2020-04-07 11:51:47
1.8K0
修改2020-04-07 11:51:47
举报

1、配置环境

①比较VS2019和VS Code,Visual Studio 2019支持C#/C++/Python/Node.js,安装VS2019,腾讯云好几种SDK都能使用了,真方便,但是不支持Java,而VS Code轻量支持Java,够用了

这个链接介绍说Visual Studio不会支持Java,VS Code对Java是轻量级支持

Currently we don't plan to extend the Java support to Visual Studio. There's already great IDEs for Java and we're focusing on VS Code to provide a lightweight experience in a polyglot editor.

②安装VS Code和Java Extension Pack

这个链接很关键:打开直接下载Visual Studio Code Java Pack Installer进行安装会比较慢,建议先单独安装,然后再安装Java Extension Pack,最后再下载安装OpenJDK11

如下图,Java Extension Pack是包含maven的,但需要手动把mvn.cmd的目录加入环境变量,搜mvn.cmd找到路径如下(以你搜到的为准)

C:\Users\Administrator\.m2\wrapper\dists\apache-maven-3.6.2-bin\795eh28tki48bv3l67maojf0ra\apache-maven-3.6.2\bin

运行systempropertiesadvanced添加环境变量

Java Extension Pack的下载地址:(这个地址实际是从搜索得来的,访问https://marketplace.visualstudio.com/ 搜vscjava.vscode-java-pack)

Java Extension Pack的介绍:Java Extension Pack is a collection of popular extensions that can help write, test and debug Java applications in Visual Studio Code. Check out Java in VS Code to get started.

2、命令行创建maven项目

mvn archetype:generate -DgroupId=com.testing -DartifactId=test -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeCatalog=internal

红色标记的3个自己填,第1个就是域名机构在前,第2个很重要,是整个项目的目录

最后一个-DarchetypeCatalog=internal非常重要,否则可能卡住不动

artifactId等于什么,一会儿就得进什么目录

3、进到第一步创建的test项目(目录),里面有个pom.xml,编辑pom.xml,增加下面2段话

第一段话里,properties部分的maven.compiler.source和maven.compiler.target的11是我jdk的大版本号,你的是几就写几,我写成11确实不报错了

其实我用VS Code的向导创建了一个maven项目看了下pom.xml的里properties,maven.compiler.source和maven.compiler.target是1.7,写成1.7也不报错了

结合报错信息“请使用 1.6 或更高版本”,让人马上联想到写成1.7可能更正确

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>11</maven.compiler.source>

<maven.compiler.target>11</maven.compiler.target>

</properties>

<dependency>

<groupId>com.tencentcloudapi</groupId>

<artifactId>tencentcloud-sdk-java</artifactId>

<version>3.1.13</version>

</dependency>

第2段话注意塞到 <dependencies> </dependencies> 里面

4、mvn install 安装依赖到本地

命令行cd test进到第一步创建的test项目(目录)

mvn install -DgroupId=com.tencentcloudapi -DartifactId=tencentcloud-sdk-java -Dversion=3.1.13

5、编译

mvn compile

6、执行

mvn exec:java -Dexec.mainClass="com.testing.App"

这里的App,实际是test\target\classes\com\testing目录里的App.class,由test\src\main\java\com\testing目录里的App.java编译得来

test\src\main\java\com\testing目录里的App.java是创建maven项目时自动生成的,api explorer里获取的源码DescribeCdnDomainLogs.java跟App.java放在同一目录

DescribeCdnDomainLogs.java的开头少一句话:package com.testing;

加上这句话,生成的DescribeCdnDomainLogs.class就跟App.class在同一目录,如果缺这句话,即使DescribeCdnDomainLogs.java跟App.java在同一个目录也没用,生成的DescribeCdnDomainLogs.class就在test\target\classes\目录,

运行的时候就得执行mvn exec:java -Dexec.mainClass="DescribeCdnDomainLogs" (注意com.testing没了)

如果你在DescribeCdnDomainLogs.java开头给加上了package com.testing; 那运行的时候就是mvn exec:java -Dexec.mainClass="com.testing.DescribeCdnDomainLogs"

编译和执行可以2步连在一起搞:mvn compile exec:java -Dexec.mainClass="com.testing.DescribeCdnDomainLogs"

如果DescribeCdnDomainLogs.java代码最后一句没有System.exit(0); 那么,执行的时候会有如下瑕疵

如何解决这个瑕疵,有2种办法:

①带参数-Dexec.cleanupDaemonThreads=false执行:mvn compile exec:java -Dexec.mainClass="com.testing.DescribeCdnDomainLogs" -Dexec.cleanupDaemonThreads=false

②修改DescribeCdnDomainLogs.java代码,给main函数最后一句增加System.exit(0);

然后执行mvn compile exec:java -Dexec.mainClass="com.testing.DescribeCdnDomainLogs"

根据报错信息“This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied.”来看,主要还是代码问题,所以我倾向给main函数加一句代码解决,而不是在执行环节加特定参数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档