springboot打包成可执行Jar文件教程

来源:互联网 发布:pci地址和mac地址 编辑:程序博客网 时间:2024/04/26 05:03
  我们在开发springboot项目时,通常都是在IDE环境里执行main函数启动应用,但是当我们开发完毕需要部署项目时,就需要把项目工程打成能够独立运行的jar文件。
把工程项目打成可执行的jar文件,需要maven-jar-plugin这个插件,并且需要配置<mainClass>指定项目的main方法所在的类;通过maven-jar-plugin打成Jar包后其实运行会
报错,例如:”Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication“,因为还没有把依赖的class文件打包到jar执行环境,因此,需要maven-dependency-plugin把依赖文件一同打包输出到执行环境。具体的maven-jar-plugin和maven-dependency-plugin配置如下图:
        <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-jar-plugin</artifactId> 
            <version>2.3.2</version> 
            <configuration> 
                <archive> 
                    <manifest> 
                        <!--change addClasspath to true if daks is desktop version--> 
                        <addClasspath>true</addClasspath> 
                        <classpathPrefix>lib/</classpathPrefix> 
                        <mainClass>com.panminlan.Application</mainClass> 
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
                        <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
                    </manifest> 
                    <manifestEntries> 
                        <Permissions>${Permissions}</Permissions> 
                        <Caller-Allowable-Codebase>${Caller-Allowable-Codebase}</Caller-Allowable-Codebase> 
                    </manifestEntries> 
                </archive> 
            </configuration> 
        </plugin> 
        <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-dependency-plugin</artifactId> 
            <version>2.3</version> 
            <executions> 
                <execution> 
                    <id>copy-dependencies</id> 
                    <phase>package</phase> 
                    <configuration> 
                        <overWriteReleases>false</overWriteReleases> 
                        <overWriteSnapshots>false</overWriteSnapshots> 
                        <overWriteIfNewer>true</overWriteIfNewer> 
                        <outputDirectory> 
                          ${project.build.directory}/lib
                        </outputDirectory> 
                    </configuration> 
                    <goals> 
                        <goal>copy-dependencies</goal> 
                    </goals> 
                </execution> 
            </executions> 
        </plugin>
   
0 0
原创粉丝点击