1:添加pom依赖,配置打包插件

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.li</groupId>
<artifactId>vertxJarPackTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <dependencies>
<!-- vertx -->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
<version>3.5.0</version>
</dependency>
<!-- 动态模板引擎,thymeleaf引擎 -->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-templ-thymeleaf</artifactId>
<version>3.5.0</version>
</dependency>
<!-- 动态模板引擎 ,handlebars引擎-->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-templ-handlebars</artifactId>
<version>3.5.0</version>
</dependency> <!-- vertx-JDBC -->
<!-- <dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-jdbc-client</artifactId>
<version>3.2.1</version>
</dependency> -->
<!-- vertx-mysql-postgresql-client -->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-mysql-postgresql-client</artifactId>
<version>3.5.0</version>
</dependency>
<!-- slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>slf4j-impl</artifactId>
<version>RELEASE</version>
</dependency> </dependencies> <build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>io.vertx.core.Starter</Main-Class>
<Main-Verticle>staticResourceTest.StaticResourceTest</Main-Verticle><!--
配置自己的主Verticle -->
</manifestEntries>
</transformer>
</transformers>
<artifactSet />
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

2:创建工程,创建verticle事件类,start里面是将某一个访问路径路由到静态页面功能

package staticResourceTest;

import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

import io.vertx.core.AbstractVerticle;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.handler.BodyHandler;
import io.vertx.ext.web.handler.StaticHandler;
import io.vertx.ext.web.handler.TemplateHandler;
import io.vertx.ext.web.templ.HandlebarsTemplateEngine;
import io.vertx.ext.web.templ.TemplateEngine;
import io.vertx.ext.web.templ.ThymeleafTemplateEngine; public class StaticResourceTest extends AbstractVerticle{ @SuppressWarnings("deprecation")
public void start(){
Router router=Router.router(vertx);//vertx是AbstractVerticle中的属性
router.route().handler(BodyHandler.create()); //处理请求体body,设置请求体等 router.route("/html/*").handler(StaticHandler.create("html"));//路由到classpath某一个目录下的静态页面
// ThymeleafTemplateEngine engine = ThymeleafTemplateEngine.create();
// ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
// resolver.setPrefix("templates");
// resolver.setSuffix(".html");
// resolver.setTemplateMode("HTML5");
// engine.getThymeleafTemplateEngine().setTemplateResolver(resolver);
//
// // 配置动态文件访问路径
// router.route("/hello").handler(routingContext -> {
// routingContext.put("msg", "DynamicReference.");
// engine.render(routingContext, "/hello", res -> {
// if (res.succeeded()) {
// routingContext.response().putHeader("Content-Type", "text/html").end(res.result());
// } else {
// routingContext.fail(res.cause());
// }
// });
// });
vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}
}

在src/main/resources 下面建立一个html目录,通过下面的路由,可以找到文件下的静态文件

router.route("/html/*").handler(StaticHandler.create("html"));//路由到classpath某一个目录下的静态页面

3:选中工程右键run as>maven clean, maven install .

target里出现 ***-fat.jar

4:将jar文件放到任意位置,通过cmd窗口进入:输入>java -jar vertxJarPackTest-0.0.1-SNAPSHOT-fat.jar

浏览器输入地址即可,访问成功。

vertx打成jar包发布工程,访问静态页面的更多相关文章

  1. springboot项目发布到独立的tomcat中运行&打成jar包运行

    springboot的打包方式依赖于插件:(下面插件打出的包与普通的包目录结构有区别) <plugin> <groupId>org.springframework.boot&l ...

  2. springboot整合JSP以及发布项目到独立的tomcat中与打成jar包使用

    之前研究了springboot整合freemarker与thymeleaf的使用.也研究了springboot发布到独立的tomcat的使用以及使用自带的tomcat打成jar包的使用,下面研究集成J ...

  3. tomacat服务器上web资源访问流程、web应用打成war包发布、Context的reloadable属性、tomacat体系架构

    一.web资源访问流程 二.web应用打成war包发布到服务器 好处:打成war包发布到服务器,那么服务器会自动把它拆解成文件夹 jar命令是java自带的一个命令,如果之前配置过Java编译环境就可 ...

  4. SpringBoot项目打成jar包后上传文件到服务器 目录与jar包同级问题

    看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了.当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用Sp ...

  5. WEB应用打成jar包全记录

    内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringM ...

  6. Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)

    转载地址:http://blog.csdn.net/xiaanming/article/details/9257853 最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来 ...

  7. 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)

    Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法) 鼠标右键项目,然后属性,然后java buildpath 然后order and ex ...

  8. 多平台Native库打入JAR包发布实战

    1.前言 在开发Java应用的过程中,经常会遇到需要使用C/C++等Native语言编译的动态库或静态库,在这些情况下往往需要将预先编译好的各平台库文件与JAR包一同发布,鉴于简洁的原则,我们可能会希 ...

  9. 将jar包发布到maven中央仓库

    将jar包发布到maven中央仓库 最近做了一个swagger-ui的开源项目,因为是采用vue进行解析swagger-json,需要前端支持,为了后端也能方便的使用此功能,所以将vue项目编译后的结 ...

随机推荐

  1. JSP中的动态包含和静态包含的区别

    本文转载自http://blog.csdn.net/xuxu198899223/article/details/8501044 1. 语法格式 (1)静态包含:<%@ include file= ...

  2. 手机端点击复制链接到剪切板(以及PC端)

    一直在找如何能点击按钮将一串字符串放到手机的剪切板上,但是可能是因为搜索的关键字不对,一直无果. 向同事请教了一下,给了一个clickboard.js的插件.开始试验的时候,使用手机自带浏览器进行测试 ...

  3. Android textview及其子类

    属性: android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) andr ...

  4. python下安装Scikit-learn

    安装SK-Learn需要依赖的Python安装包有: Python (>= 2.6), NumPy (>= 1.3), SciPy (>= 0.7), 下载python的各种包的地址 ...

  5. 【docker】 centos7 下 使用docker 安装 LNMP

    一.安装 mysql 1 获取 mysql 镜像 docker pull mysql:5.7 2 创建mysql的镜像,并运行 docker run -d -p : -e MYSQL_ROOT_PAS ...

  6. 架设FTP Server-Windows Server 2012

    架设FTP Server-Windows Server 2012 https://jingyan.baidu.com/article/03b2f78c75b9b65ea237ae84.html   在 ...

  7. RAID在数据库存储上的应用

    随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...

  8. spring应用中多次读取http post方法中的流(附源码)

    一.问题简述 先说下为啥有这个需求,在基于spring的web应用中,一般会在controller层获取http方法body中的数据. 方式1: 比如http请求的content-type为appli ...

  9. 硬件RDMA的驱动配置和测试

    author:headsen chen date: 2019-01-18  10:22:20 notice:created  by headsen chen himself and not allow ...

  10. http get请求参数拼接

    localhost:8080/hbinterface/orderInterface/groupReverseAccept.do?bizType=4&&bnetAccount=ESBTE ...