本文主要是介绍将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工程当作脚本一样进行启动执行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!