一、SpringBoot项目环境
- IntelliJ IDEA 2018.3.2
- Mysql 5.1
二、两种打包方式
- 使用Maven里的package一键打包
- 使用IDAE的Project Structure里的Artifacts打包
三、两种方式打包结果
- 使用Maven的package。这种打包方式会将打包后的jar放在target文件里,一个是没有后缀original文件,一个有后缀original的文件。将前者部署到服务器上。
使用这种方式打包后,部署到服务器上,可以使用以下命令运行主类
但是,无法使用以下命令运行指定的jar包中的其他主类java -jar *****.jar [参数1] [参数2] [参数3] #文中提到的参数都是我自己函数需要的参数,没有的话可以不填参数
以下是我的项目结构:java -cp *****.jar com.InsertDataToUserInfo(其他主类的具体包名) [参数1] [参数2] [参数3]
- 使用IDEA的Project Structure里的方式打包
左上角File------>Project Structure------->Artifacts--------> ➕ -------->JAR-------> From modules with dependencies
重点
选择MainClass------>路径填到src即可,白框的内容不要,即到xxxxx\src------->OK(会自动导入依赖)
点击工具栏上的Build------->Build Artifacts----->Build
用这种方式打包后的文件是生成的新目录,我的是out目录。
使用这种方式,可以使用以下命令运行,执行指定主类
但是,却无法使用以下命令执行默认主类java -cp *****.jar com.InsertDataToUserInfo [参数1] [参数2] [参数3]
开始我以为是在pom文件里配置了默认主类的原因,但是去掉了还是不行。java -jar *****.jar [参数1] [参数2] [参数3]
最后我就分别用两种方式打包了jar,一个拿来运行默认主类,一个拿来运行指定主类。
切记,在打包时,一定只能有一个标记为SpringBootApplication的类,不然会打包失败