将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脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题