将Maven工程当作脚本一样进行启动执行

2023-11-30 02:50

本文主要是介绍将Maven工程当作脚本一样进行启动执行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

有时候我们只需要使用Maven工程里的依赖,因为很多第三方的SDK在集成Maven方面非常的方便。比如我们要定时任务启动一个Main方法等等情况。因为他不是服务端,所以需要使用maven相关依赖,我们可以认为工程是客户端(client)。

开发工具我们使用Idea。

注意

正常情况下使用maven打的jar包是不包含项目所依赖得jar包的,所以通过:

java –cp xxx.jar com.test.MainClass 

来运行jar包的时候会抛出:

Exception in thread “main” java.lang.NoClassDefFoundError

如果要把依赖包也一并打出来需要使用下面的方法。

实现

打包并将依赖也一并打出来。

(1)新建工程

File--> New--> Project-->Maven-->devops

(2)demo源代码

package demo;public class Cdn {public static void main(String[] args) {System.out.printf("test refesh cdn for aly");}
}

(3)配置打包时的启动类

下面是关键点:

IDEA自动配置的路径是错误的,我们应该将其放置在项目的根路径:

 然后我们开始一路OK,来到这个界面,我们选择 apply 进行应用。

(4)编译打包和测试

Build --> Build Artifacts。

我们可以看到在根路径下生成了out文件夹,我们用jar启动测试。

D:\java-res\cdn\out\artifacts\lib>java -jar sample.jar
[LOG] {"headers":{"access-control-allow-origin":"*","date":"Mon, 29 Nov 2021 14:29:09 GMT","content-length":"82","access-control-max-age":"
172800","x-acs-request-id":"626C193E-0D53-5EA3-AFAC-F1038ECB1A2A","access-control-allow-headers":"X-Requested-With, X-Sequence, _aop_secret
, _aop_signature, x-acs-action, x-acs-version, x-acs-date, Content-Type","connection":"keep-alive","content-type":"application/json;charset
\u003dutf-8","access-control-allow-methods":"POST, GET, OPTIONS, PUT, DELETE","x-acs-trace-id":"5d4542d6eb8ede3a394f81cdb7367b25"},"body":{
"RequestId":"626C193E-0D53-5EA3-AFAC-F1038ECB1A2A","RefreshTaskId":"13670716436"}}

如何把依赖包放在lib目录下了?

 特别注意:

在指定的jar文件之前增加"lib\",即刚才存放第三方Jar文件的新建目录的名称。

如果要打成linux的包,路径应改为"lib/";

验证: 在命令行中跳转到输出目录中,以"java -jar 生成的jar包名称.jar" 即可实现运行

Spring boot项目当作脚本执行

请参阅我的另外一篇博文: Spring boot 无端口模式启动以及使用场景_叱咤少帅的博客-CSDN博客

这篇关于将Maven工程当作脚本一样进行启动执行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435350

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶