方式一、build打包
1、进入project structure
2、要选择启动类以及MANIFEST.MF选择src目录下即可
之后在项目里会生成一个META-INF文件夹,就是存储了项目的元信息,其中文件manifest.mf
仅此一份,描述了程序的基本信息、Main-Class
的入口、jar
依赖路径Class-Path
。(不用管就行)
3、进行build打包
打包后生成jar包应该位于项目下out目录中。(如果启动有问题无法解决,可尝试方式二)
方式二:maven打包
1、pom添加依赖
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--选择启动类--> <mainClass>com.sunsheen.DataArchivesApplication</mainClass> <!--允许添加本地jar包--> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
如果有本地jar包需添加:
需要引入本地jar包,我把jar存放的项目中的/src/main/resources/lib 下
<dependency> <groupId>org.gbase</groupId> <artifactId>gbase-connector-java</artifactId> <scope>system</scope> <version>8.3</version> <systemPath>${project.basedir}/src/main/resources/lib/gbase.jar</systemPath> </dependency>
scope:需要配置指定为system;
systemPath:指向jar包的地址;
groupId、artifactId、version:可以随意填写,其中artifactId+version就是maven打包后的jar包名
之后先clean之前的target,再package就可以target目录下生成jar包了。
命令行方式:
<!--打jar包命令 mvn clean install -Dmaven.test.skip=true-->
<!--打war包命令 mvn clean package -Dmaven.test.skip=true-->
最后打包生成的文件:
.jar.original 是普通jar包,不包含依赖
.jar 是可执行jar包,包含了pom中的所有依赖,可以直接用java -jar 命令执行
如果是部署,就用.jar
如果是给别的项目用,就要给.jar.original这个包
注意:如果打包后运行提示ClassNotFoundException,可以看看是不是引入包的范围设置有误。如下图,<scope>import</scope>
的作用是将依赖项标记为“import”范围,这意味着该依赖项只用于编译和测试,而不会包含在最终的打包结果中。