-
使用maven工程构建java 的hadoop客户端项目说明通过java操作hadoop中的hdfs分布式文件系统,首先我们要建新一个maven的java工程,然后在pom.xml导入hadoop的如果的依赖java包。再编写一个java的测试类去连接hadoop的集群环境。注意hadoop集群版本与导入hadoop-client的版本要一致,避免产生其它的问题。工程目录导入Maven的依赖包 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.0.0</version> </dependency> </dependencies>编写Java处理hadoop集群的测试类package net.togogo.hdfs; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.LocatedFileStatus; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RemoteIterator; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.net.URI; /** * 构建HdfsClient来操作hadoop集群 */ public class HdfsClient { private FileSystem fs = null; /** * 构建分布式文件系统的操作对象FileSystem */ @Before public void init() { System.out.println(" init methon start ...."); try { Configuration conf = new Configuration(); //连接集群的地址 URI uri = new URI("hdfs://192.168.20.32:9000"); fs = FileSystem.get(uri, conf, "hd"); System.out.println("FileSystem---->" + fs); } catch (Exception e) { e.printStackTrace(); } System.out.println(" init methon end ...."); } /** * 命令 hadoop fs -ls / */ @Test public void listRoot() { try { System.out.println("listRoot method ...."); //访问 hadoop fs -ls / RemoteIterator it = fs.listFiles(new Path("/"), true); //循环 while (it.hasNext()) { LocatedFileStatus lf = it.next(); System.out.println(lf.getPath().getName()); } fs.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 命令 hadoop fs -mkdir /test0831 */ @Test public void mkdir() { try { Path path = new Path("/test0831"); fs.mkdirs(path); fs.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 命令 hadoop fs -put F:/hello.log / */ @Test public void upload() { try { Path src = new Path("F:/hello.log"); Path dst = new Path("/"); fs.copyFromLocalFile(src, dst); } catch (IOException e) { e.printStackTrace(); } } /** * 命令 hadoop fs -get /hello.log F:/dsthello.log */ @Test public void download() { try { Path src = new Path("/hello.log"); Path dst = new Path("F:/dsthello.log"); fs.copyToLocalFile(src, dst); } catch (IOException e) { e.printStackTrace(); } } }腾科IT教育
-
背景:在做软件移植时,第一步一般是扫描依赖,看是否包含X86的动态库,接着确定使用该库存的JAR包。有些场景中,这个jar包并不是布署在mvn库的,而是通过编译生成的,即:我们看到的动态库与这个JAR的关系并不是直接包含关系,这个JAR是使用了仓中的某个JAR包,而因有这个动态库。这种情况一下,我们就不知道这个中间JAR的版本。怎么办呢?方法一:1、先问,google等手段,确定出使用你这个动态库存的jar包名称;2、在源码目录中,使用grep -rn "jar包名称" , 看一下有没有文件在描述它。幸运的话,你会发些一些文件在描述依赖,你就可以找到版本,然后下载对应源码后在本地部署。然后重新编译你的大数据组件,动态库就可以被替换方法二:1、找到这个中间jar包的mvn目录,然后移值(重命名)2、重新启动编译,之后到相同目录中,可以看到新生成的版本目录3、记下来,尝试手工编译,然后覆盖还有没有其它方法,也请分享。
-
首先让我们来建立一个Hello ActFramework项目。 ActFramework 提供了完整的 Maven 生态,我们可以借由 Maven 很快的展开一个 ActFramework 的基础项目。让我们给还没用熟IDEA的小伙伴一点提示。新增一个 Maven 的展开项org.actframeworkarchetype-quickstart1.8.23.0然后填写上你项目的基本信息然后根据你的需要配置一下你的项目信息。 基本上除了路径也不需要额外配置。 最后创建项目,等着 Maven 自动展开就好啦。 PS:建议同学们按照Java 比较通用的命名规则来对项目进行命名,请不要学习我瞎命名。
-
问题: 在使用CloudIDE 过程中遇到一个问题,代码在编译构建服务中构建成功,但是在CloudIDE中却因为下载不了依赖包而构建失败,这是应为两者的maven 依赖仓的配置不一样,下面分享下如何在CloudIDE中配置和编译构建服务一样的maven 依赖仓。使用的CloudIDE 服务的链接: https://devcloud.cn-north-4.huaweicloud.com/cloudide/home1,首先去编译构建服务 新建一个构建任务,输入“cat ~/.m2/settings.xml”,:2, 运行构建任务,并从日志中复制出settings.xml:3, 复制后去掉前面的时间戳,并删除 <localRepository> 标签:4,打开要配置的cloudide实例,在工程下新建文件settings.xml, 经获取的settings.xml 内容复制到新建的文件中保存:5, 打开teminal 执行“cp settings.xml ~/.m2/settings.xml”6, 完成maven 的配置, 在命令行执行mvn package, 依赖包不能下载的问题就解决了
-
Maven构建java工程操作hdfs实例腾科教育以为理论+实操为主的教学,带你进入大数据开发基础。每一步都带着你,让你一步一步实现自已的大数据开发梦想。构建maven工程 导入maven类包 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.8.1</version> </dependency> </dependencies>编写Junit单元测试类package net.togogo.hdfsproject; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org.junit.Before; import org.junit.Test; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; public class HdfsClientTest { FileSystem fs = null; @Before public void init() throws Exception { // 构造一个配置参数对象,设置一个参数:我们要访问的hdfs的URI // 从而FileSystem.get()方法就知道应该是去构造一个访问hdfs文件系统的客户端,以及hdfs的访问地址 // new Configuration();的时候,它就会去加载jar包中的hdfs-default.xml // 然后再加载classpath下的hdfs-site.xml Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.75.129:9000"); /** * 参数优先级: 1、客户端代码中设置的值 2、classpath下的用户自定义配置文件 3、然后是服务器的默认配置 */ conf.set("dfs.replication", "3"); // 获取一个hdfs的访问客户端,根据参数,这个实例应该是DistributedFileSystem的实例 // fs = FileSystem.get(conf); // 如果这样去获取,那conf里面就可以不要配"fs.defaultFS"参数,而且,这个客户端的身份标识已经是hadoop用户 fs = FileSystem.get(new URI("hdfs://192.168.75.129:9000"), conf, "hadoop"); } @Test public void testAddFileToHdfs(){ // 要上传的文件所在的本地路径 Path src = new Path("D:\\stone\\HCNA-AI\\images\\idcard.jpg"); // 要上传到hdfs的目标路径 Path dst = new Path("/togogo/idcard.jpg"); try { fs.copyFromLocalFile(src,dst); System.out.println("文件上传成功..."); } catch (IOException e) { e.printStackTrace(); } } @Test public void testDelFileFromHdfs(){ // 要上传到hdfs的目标路径 Path dst = new Path("/togogo/work"); try { fs.delete(dst,true); System.out.println("文件删除成功..."); } catch (IOException e) { e.printStackTrace(); } } /** * 查看目录信息,只显示文件 * * @throws IOException * @throws IllegalArgumentException * @throws FileNotFoundException */ @Test public void testListFiles() throws FileNotFoundException, IllegalArgumentException, IOException { // 思考:为什么返回迭代器,而不是List之类的容器 RemoteIterator while (listFiles.hasNext()) { LocatedFileStatus fileStatus = listFiles.next(); System.out.println(fileStatus.getPath().getName()); System.out.println(fileStatus.getBlockSize()); System.out.println(fileStatus.getPermission()); System.out.println(fileStatus.getLen()); BlockLocation[] blockLocations = fileStatus.getBlockLocations(); for (BlockLocation bl : blockLocations) { System.out.println("block-length:" + bl.getLength() + "--" + "block-offset:" + bl.getOffset()); String[] hosts = bl.getHosts(); for (String host : hosts) { System.out.println(host); } } System.out.println("--------------为angelababy打印的分割线--------------"); } } /** * 查看文件及文件夹信息 * * @throws IOException * @throws IllegalArgumentException * @throws FileNotFoundException */ @Test public void testListAll() throws FileNotFoundException, IllegalArgumentException, IOException { FileStatus[] listStatus = fs.listStatus(new Path("/")); String flag = "d-- "; for (FileStatus fstatus : listStatus) { if (fstatus.isFile()) flag = "f-- "; System.out.println(flag + fstatus.getPath().getName()); } } }
-
在maven中配置了好多jdk是1.6的项目,但是devcloud使用的最低是jdk1.7,这个怎么破?
-
8.1 JAVA SDK 使用指南中提到需安排Maven插件:m2e - Maven Integration for Eclipse (includes Incubating components),网上资料很不一致,可否给出一个简单的说明谢谢
-
Uploading: https://devrepo.devcloud.huaweicloud.com/02/nexus/content/repositories/458d05c7f60641c29565b4c5ef151740_1_0/com/icss/newretail/zhmd-api/1.0/zhmd-api-1.0.pom[INFO] ------------------------------------------------------------------------[INFO] Reactor Summary:[INFO][INFO] zhmd-api ........................................... FAILURE [ 1.675 s][INFO] common-api ......................................... SKIPPED[INFO] ai-center-api ...................................... SKIPPED[INFO] ai-center-api-service .............................. SKIPPED[INFO] ai-center-api-endpoint ............................. SKIPPED[INFO] delivery-center-api ................................ SKIPPED[INFO] delivery-center-api-service ........................ SKIPPED[INFO] delivery-center-api-endpoint ....................... SKIPPED[INFO] goods-center-api ................................... SKIPPED[INFO] goods-center-api-service ........................... SKIPPED[INFO] goods-center-api-endpoint .......................... SKIPPED[INFO] member-center-api .................................. SKIPPED[INFO] member-center-api-service .......................... SKIPPED[INFO] member-center-api-endpoint ......................... SKIPPED[INFO] pay-center-api ..................................... SKIPPED[INFO] pay-center-api-service ............................. SKIPPED[INFO] pay-center-api-endpoint ............................ SKIPPED[INFO] promotion-center-api ............................... SKIPPED[INFO] promotion-center-api-service ....................... SKIPPED[INFO] promotion-center-api-endpoint ...................... SKIPPED[INFO] trade-center-api ................................... SKIPPED[INFO] trade-center-api-service ........................... SKIPPED[INFO] trade-center-api-endpoint .......................... SKIPPED[INFO] user-center-api .................................... SKIPPED[INFO] user-center-api-service ............................ SKIPPED[INFO] user-center-api-endpoint ........................... SKIPPED[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 2.716 s[INFO] Finished at: 2019-04-01T21:17:35+08:00[INFO] Final Memory: 46M/354M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project zhmd-api: Failed to deploy artifacts: Could not transfer artifact com.icss.newretail:zhmd-api:pom:1.0 from/to releases (https://devrepo.devcloud.huaweicloud.com/02/nexus/content/repositories/458d05c7f60641c29565b4c5ef151740_1_0/): Failed to transfer file: https://devrepo.devcloud.huaweicloud.com/02/nexus/content/repositories/458d05c7f60641c29565b4c5ef151740_1_0/com/icss/newretail/zhmd-api/1.0/zhmd-api-1.0.pom. Return code is: 401, ReasonPhrase: . -> [Help 1][ERROR]其中setting.xml文件,是在网站上下载的,检查了用户名密码是配置了的。 deploy失败的可能原因是啥? 还需要做什么设置吗?
-
[转载]Maven依赖的JAR包下载慢?赶紧看过来2019年03月27日 16:24:01 DevCloud 阅读数:25更多个人分类: 技术交流文:华为云DevCloud 亲亲土豆相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载速度由于Maven工程默认配置的依赖仓库主要部署在国外,从国内下载速度较慢,国内许多高校或公司通过架设开源镜像站来解决该问题,这些镜像站一般都是向国内开发者开放的,我们可以通过配置国内的镜像来解决下载速度慢的问题。所谓开源镜像站,指的是存放开源操作系统、开源组件等镜像文件的站点,国内的镜像站通过定期/实时同步国外源站的开源操作系统或组件,为国内用户提供高速、稳定的依赖包下载服务。目前国内比较常用的镜像站包括华为开源镜像站、清华大学镜像站、中科大镜像站等等,今天主要以华为开源镜像站为示例给大家进行讲解方式一,配置针对所有项目的全局镜像库在Maven安装目录下找到Maven的配置文件setting.xml,里面有个<mirrors>配置项目,这里配置了所有的全局镜像,你可以在<mirrors>下增加以下节点:<mirror> <id>huaweicloud</id> <mirrorOf>*</mirrorOf> <url>https://mirrors.huaweicloud.com/repository/maven/</url></mirror>如下图所示:需要注意的是,<mirrors>下配置了多个镜像库时,只有当第一个镜像库无法连接时,才会使用第二个镜像库查找jar文件,否则即使第一个镜像库里找不到想的jar文件,也不会去第二个镜像库查找。因此,若需要配置多个镜像库,可将<mirrorOf>设置为*,!repo1,在<profiles>标签中增加个性化配置,并在<activeProfiles>标签中将其激活,完整如下图所示:方式二,配置针对单个项目的镜像库 在项目的maven配置文件pom.xml里,添加repositories配置即可,如下:<repositories><repository><id>huaweicloud</id><name>huaweicloud</name><url>>https://mirrors.huaweicloud.com/repository/maven/</url></repository></repositories>如下图所示:注意:在pom.xml中配置了repository后,setting.xml文件中关于mirror部分的<mirrorOf>标签不能设置为*,否则pom.xml中的repository配置不会生效。<mirrorOf>需要配置为*,!huaweicloud将huaweicloud镜像设为例外,如下图:更多信息可以参考华为开源镜像站。来源:https://devcloud.blog.csdn.net/article/details/88848080
-
背景信息 将本地项目迁移到云上构建时,部分依赖可能无法在华为开源镜像站或软件开发云私有依赖库找到,需要从私有依赖仓库或三方仓库下载依赖,容易遇到网络不通、认证不通过等问题。此处提供一些可能的经验参考 声明:纯个人分享,对文中提到的概念、技术准确性、安全性不承担任何责任本文中提及的几种依赖仓库说明1. 华为开源镜像站- 地址:https://mirrors.huaweicloud.com/- 说明:无需配置,使用编译构建服务时,默认可从镜像站下载依赖,可满足大部分构建需求2. 软开云私有依赖库- 地址:https://devcloud.huaweicloud.com/cloudartifact/repository- 指导手册:https://support.huaweicloud.com/qs-releaseman/zh-cn_topic_0145299115.html- 说明:初次使用时需要前往私有依赖库首页初始化:https://support.huaweicloud.com/releaseman_faq/releaseman_faq_0006.html3. 公开三方仓库- 非DevCloud官方提供的仓库- 可以直接从公网访问- 无需认证(无需在settings.xml中配置认证信息)4. 需要认证的私有仓库- 搭建在私有云/本地局域网环境- 能从公网访问,但是有设置访问IP白名单限制(如果本身不具备可访问的域名或公网IP,则无法在软件开发云使用,此处不予讨论)- 需要认证(需要在settings.xml中配置认证信息)前置准备参考官方文档,创建好项目、代码仓库、Maven构建任务创建项目:https://support.huaweicloud.com/qs-codeci/codeci_qs_1001.html创建构建任务:https://support.huaweicloud.com/qs-codeci/codeci_qs_2001.html配置构建任务-使用公开三方仓库 编译构建服务提供了Action “配置Maven华为开源镜像站”,可以增加非DevCloud提供的依赖仓库。 注意:此方式目前只能配置仓库地址,不支持仓库认证信息配置,故只适合使用公开三方仓库场景操作步骤1. 在“Maven构建”前添加步骤:“配置Maven华为开源镜像站” 2. 在右侧步骤配置页新增仓库,填写完整仓库地址3. 保存任务,再次构建即可从公开三方仓库下载所需要的依赖包配置构建任务-使用需要认证的私有仓库 此类场景下,首先要解决编译构建服务于仓库之间网络通信问题,需要将构建服务器地址加入到私有仓库的IP白名单列表,确保构建服务可以访问私有仓库地址(具体可联系DevCloud);此外,由于软开云编译构建服务目前不支持三方仓库认证信息配置,需要通过其他方式自行配置,以下为操作步骤:1. 前往软开云私有依赖库下载Devcloud配置好的settings.xml文件参考文档:https://support.huaweicloud.com/usermanual-releaseman/releaseman_hlp_00004.html2. 参考步骤1中指导文档,修改下载好的settings.xml文件(DevCloud已经配置好的仓库无需修改,在原基础新增仓库信息即可)其中:- reponsitory节点中配置仓库地址、仓库ID等,仓库ID为自定义值,需要与mirrorOf、server配置中填写的仓库ID对应,如示例中的snapshots、releases即为Devcloud提供的私有仓库的ID- mirrorOf节点中,以”!仓库ID“格式增加一项,表示此仓库ID对应的仓库无需mirror代理,如!releases,!snapshots,表示releases仓库和snapshots仓库不经过mirror代理- server节点中配置ID对应仓库的认证信息3. 将修改好的settings.xml文件放置在代码pom.xml文件同级目录并提交到软开云代码仓库4. 修改构建配置,指定使用项目中自带的settings.xml文件构建如图,在构建命令后追加 --settings settings.xml 即可5. 保存任务后再次构建,即可从指定的私有依赖仓库下载所需依赖(注意:配置私有仓库认证信息时,在settings.xml直接配置明文密码可能存在一定风险,如有需要,可联系DevCloud官方咨询密码加密方式)
-
有些同学在导入CSEJavaSDK的demo工程的时候,会发现maven依赖没有导入进来。代码中很多类都是红的,显示无法找到类:此时大家可以跑一下mvn clean package构建命令,看看控制台里的输出日志:关键日志如下:Non-resolvable import POM: Failure to find com.huawei.paas.cse:cse-dependency:pom:2.3.62 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced @ line 18, column 19 -> [Help 2]可以看到,日志里显示maven在尝试从maven中央仓库拉取依赖包(这是maven的默认配置,也有可能是其他的错误地址),而不是从华为云镜像站拉取依赖。这就说明该环境上的maven setting文件没有按照Day2培训中的说明进行配置,建议大家按照操作指导再配置一下maven setting文件。
-
有些时候我们创建或导入一个maven工程,IDE(Eclipse和IDEA之类的)会提醒我们项目编译版本和jre版本不一致。Eclipse下的错误提示信息如下图所示详细错误信息为:Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. The compiler compliance specified is 1.5 but a JRE 1.8 is used这是maven由于一些历史原因,默认是以jdk 1.5版本来编译工程项目的。但是我们的CSEJavaSDK项目现在实际上是跑在Java8环境了。此时有一个简单的解决方法,就是在maven工程的pom文件里显式指定打包插件使用的java语言版本:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <compilerArgument>-parameters</compilerArgument> <encoding>UTF-8</encoding> <!--显式指定字符集为UTF-8--> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>如下图所示:
-
2019-03-15 14:44:07,109 [WARN] keyStore [server.p12] file not exist, please check! org.apache.servicecomb.foundation.vertx.VertxTLSBuilder.buildTCPSSLOptions(VertxTLSBuilder.java:118)2019-03-15 14:44:07,109 [WARN] trustStore [trust.jks] file not exist, please check! org.apache.servicecomb.foundation.vertx.VertxTLSBuilder.buildTCPSSLOptions(VertxTLSBuilder.java:138)2019-03-15 14:44:07,110 [WARN] keyStore [server.p12] file not exist, please check! org.apache.servicecomb.foundation.vertx.VertxTLSBuilder.buildTCPSSLOptions(VertxTLSBuilder.java:118)2019-03-15 14:44:07,110 [WARN] trustStore [trust.jks] file not exist, please check! org.apache.servicecomb.foundation.vertx.VertxTLSBuilder.buildTCPSSLOptions(VertxTLSBuilder.java:138)2019-03-15 14:44:07,295 [ERROR] org.apache.servicecomb.foundation.vertx.client.ClientVerticle.start(ClientVerticle.java:38)io.vertx.core.VertxException: ALPN not available for JDK SSL/TLS engineat io.vertx.core.net.impl.SSLHelper.resolveEngineOptions(SSLHelper.java:86)at io.vertx.core.net.impl.SSLHelper.<init>(SSLHelper.java:144)at io.vertx.core.http.impl.HttpClientImpl.<init>(HttpClientImpl.java:133)at io.vertx.core.impl.VertxImpl.createHttpClient(VertxImpl.java:298)at org.apache.servicecomb.foundation.vertx.client.http.HttpClientPoolFactory.createClientPool(HttpClientPoolFactory.java:36)at org.apache.servicecomb.foundation.vertx.client.http.HttpClientPoolFactory.createClientPool(HttpClientPoolFactory.java:27)at org.apache.servicecomb.foundation.vertx.client.ClientPoolManager.createClientPool(ClientPoolManager.java:60)at org.apache.servicecomb.foundation.vertx.client.ClientVerticle.start(ClientVerticle.java:35)at io.vertx.core.AbstractVerticle.start(AbstractVerticle.java:106)at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$8(DeploymentManager.java:483)at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:339)at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)at java.lang.Thread.run(Thread.java:748)2019-03-15 14:44:07,315 [ERROR] deploy vertx failed, cause org.apache.servicecomb.foundation.vertx.VertxUtils.lambda$blockDeploy$0(VertxUtils.java:102)io.vertx.core.VertxException: ALPN not available for JDK SSL/TLS engineat io.vertx.core.net.impl.SSLHelper.resolveEngineOptions(SSLHelper.java:86)at io.vertx.core.net.impl.SSLHelper.<init>(SSLHelper.java:144)at io.vertx.core.http.impl.HttpClientImpl.<init>(HttpClientImpl.java:133)at io.vertx.core.impl.VertxImpl.createHttpClient(VertxImpl.java:298)at org.apache.servicecomb.foundation.vertx.client.http.HttpClientPoolFactory.createClientPool(HttpClientPoolFactory.java:36)at org.apache.servicecomb.foundation.vertx.client.http.HttpClientPoolFactory.createClientPool(HttpClientPoolFactory.java:27)at org.apache.servicecomb.foundation.vertx.client.ClientPoolManager.createClientPool(ClientPoolManager.java:60)at org.apache.servicecomb.foundation.vertx.client.ClientVerticle.start(ClientVerticle.java:35)at io.vertx.core.AbstractVerticle.start(AbstractVerticle.java:106)at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$8(DeploymentManager.java:483)at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:339)at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)at java.lang.Thread.run(Thread.java:748)
-
1. Maven简介Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期。(1)下载Maven 官方地址:http://maven.apache.org/download.cgi (2)将文件解压到某个目录 (3)配置maven环境变量 ●Maven环境测试打开命令行窗口,输入mvn -v,如果有maven 版本信息输出则证明配置成功,否则请查看自己配置路径等是否正确。注意:安装maven前请确保已安装JDK并成功配置其环境变量。显示版本信息的命令:mvn -v 在C:\Users\Administrator下创建.m2目录的命令:mvn help:system 执行该命令后将在C:\Users\Administrator下创建.m2目录。该目录将作为本次仓库的根目录,在该目录下可以放置配置文件和repository。 (4)将maven安装目录下的conf/settings.xml文件复制到C:\Users\Administrator\.m2目录下。使用国内华为云的Maven公共仓库,下载依赖构建包速度很快,否则,maven项目默认从国外的中央仓库下载。<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <mirror> <id>huaweicloud</id> <mirrorOf>*,!HuaweiCloudSDK</mirrorOf> <url>https://repo.huaweicloud.com/repository/maven/</url> </mirror> </mirrors><profiles> <profile> <id>MyProfile</id> <repositories> <repository> <id>HuaweiCloudSDK</id> <url>https://repo.huaweicloud.com/repository/maven/huaweicloudsdk/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </profile></settings>2、在IntelliJ IDEA中配置maven(1)打开-File-Settings (2)Importing保留其默认值1)如下图标注2所示,Import Maven projects automatically 表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件,进行项目变动设置。2)如下图标注3 所示,在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果我们需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。3)下图标注 4所示,可以设置导入的 VM 参数。一般这个都不需要主动改,除非项目真的导入太慢了我们再增大此参数。 3、在IntelliJ IDEA中创建Java project(1)File -> New -> Project... (2)创建HelloWorld程序 (3)设置项目名称和指定项目保存的位置(工作区目录) (4)环境搭建成功点击右上角工具栏中的运行按钮(绿色三角箭头),运行编译 创建结束后,项目代码结构如下: 4、在IntelliJ IDEA中基于Maven创建 Java 项目(1)File -> New -> Project... (2)设置GroupId和ArtifactId属性值 GroupId:是一个工程在全局中的唯一标识符,一般地,它就是工程名,使用一个完全的包名将一个工程识别出来。Artifact:是工程将要产生或需要使用的文件,可以是.jar,.war,源文件等。每个Artifact由GroupId和ArtifactId组合进行唯一识别。(3)指定Maven的安装目录 (4)指定项目保存的位置(工作区目录) (5)点击Finish后,项目代码结构如下: (6)选择根目录-> src-> main-> java文件夹,右击选择new->Java class,新建一个名称为test的java类文件: (7)运行测试程序,在编辑区右击选择Run ‘test.main()’,在控制台中能看到“hello world”说明项目创建成功:
上滑加载中
推荐直播
-
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
回顾中 -
用代码全方位驱动 OBS 存储
2025/01/14 周二 16:30-18:00
阿肯 华为云生态技术讲师
如何用代码驱动OBS?常用的数据管理,对象清理,多版本对象访问等应该如何编码?本期课程一一演示解答。
即将直播 -
GaussDB数据库开发
2025/01/15 周三 16:00-17:30
Steven 华为云学堂技术讲师
本期直播将带你了解GaussDB数据库开发相关知识,并通过实验指导大家利用java基于JDBC的方式来完成GaussD数据库基础操作。
去报名
热门标签