IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样:
1 <plugin> 2 <groupId>org.codehaus.mojo</groupId> 3 <artifactId>exec-maven-plugin</artifactId> 4 <version>1.2.1</version> 5 <executions> 6 <execution> 7 <goals> 8 <goal>exec</goal> 9 </goals> 10 </execution> 11 </executions> 12 <configuration> 13 <executable>java</executable> 14 <arguments> 15 <argument>-classpath</argument> 16 <classpath> 17 </classpath> 18 <argument>ctas.importer.reader.app.Program</argument> 19 </arguments> 20 </configuration> 21 </plugin>
18行,改成自己的Main-Class类,然后用mvn exec:exec来运行,但是部署到生产环境中时,服务器上通常并不具备maven环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节:
一、依赖项的处理
java application运行时需要查找依赖的第三方jar,如果查找classpath失败,就会报错,可以先用
mvn dependency:copy-dependencies -DoutputDirectory=target/lib
命令,把依赖的jar包全部导出到target/lib这个目录下
二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件
java application的最终jar里,用解压工具打开后,可以看到META-INF目录下,有一个重要的清单文件 MANIFEST.MF,这里面可以指定 Main-Class及classpath,结构如下:
1 Manifest-Version: 1.0 2 Built-By: jimmy 3 Build-Jdk: 1.7.0_09 4 Class-Path: lib/DataEntity-1.0.jar ... 5 Created-By: Apache Maven 3.2.3 6 Main-Class: ctas.importer.reader.app.Program 7 Archiver-Version: Plexus Archiver
其中第4行指定了classpath,也就是所依赖的jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件
1 <plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-jar-plugin</artifactId> 4 <configuration> 5 <archive> 6 <manifest> 7 <mainClass>ctas.importer.reader.app.Program</mainClass> 8 <addClasspath>true</addClasspath> 9 <classpathPrefix>lib/</classpathPrefix> 10 </manifest> 11 </archive> 12 <classesDirectory> 13 </classesDirectory> 14 </configuration> 15 </plugin>
第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项
ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar xxx.jar就可以了,如果要在后台运行,前面加 nohup
相关推荐
maven打包 maven打jar包详细步骤
当前pom.xml中详细的记录了将maven项目打成可运行jar包的完整代码,使用maven的插件maven-assembly-plugin,同时将所有依赖打到jar包中,亲测可用。
这是一个springboot+maven写的demo,主要演示springboot项目通过maven插件,将依赖与配置文件打包到jar包外部,实现灵活的项目管理.仅供参考学习
IDEA中使用maven打jar包,然后使用工具混淆代码,亲测有效
maven jar包依赖 com.ckfinder:ckfinder:jar:2.3
本篇文章主要介绍了Maven引入本地Jar包并打包进War包中的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
IDEA中使用maven打jar包,然后使用工具混淆代码,亲测有效
allatori第二代Java代码混淆器Maven打包配置,依赖库,以及配置文件。示例运行,可行。
达梦数7据库j驱动包及方言包,maven依赖jar包,DM达梦数据库jdbc-jar包dialect方言jar包
ImpalaJDBC驱动包,用于Impala数据库连接,Maven配置所需的jar包
主要介绍了Maven 生成打包可执行jar包的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java 写的可执行程序怎么使用 maven 打包? 执行程序中有巨多第三方依赖包,要一起打进 jar 包,怎么办? maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing....
idea新建maven web项目.zip Jetbrains IntelliJ IDEA创建基于maven打包工具的WEB网站项目 本项目使用的是SSM框架spring mvc,spring, mybatis.用maven打包成jar
JSONObject对象相关的jar包依赖,一共有6个;还有maven环境下管理的jar包
mvn install:install-file -Dfile=E:\ProgramFiles\apache-maven-3.6.1\国产数据库\oscarJDBC16 -DgroupId=...执行这个命令后,Maven会将指定的jar文件安装到本地Maven仓库中,以便在Maven项目中使用该jar文件的依赖。
Maven搭建Kafka Java开发环境需要的jar包,直接解压到maven本地仓库的com文件夹下
比较常用的Jar包,maven比较常用的Jar包不用从中央仓库下载。节省时间
主要介绍了maven打包成第三方jar包且把pom依赖包打入进来的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
导入这个jar包后就可以使用ffmpeg的音频转码 mvn install:install-file -Dfile=E:\jave-1.0.2.jar //包的输入路径 -DgroupId=jave -DartifactId=jave -Dversion=1.0.2 -Dpackaging=jar //执行完成后 ...
maven 瘦身打包配置信息