springboot maven打包jar运行,springboot mybatis druid,demo源码

本文详细介绍了如何使用SpringBoot将项目打包成Jar并运行,包括Maven配置、依赖和插件设置,以及最终在本地或服务器上通过Java命令执行Jar包的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文介绍的mysql版本是5.x ,如果mysql升级到8 有几个地方需要改动
https://blog.youkuaiyun.com/a704397849/article/details/108396563

之前分享一篇 springboot mybatis 多数据源 Druid连接池,demo源码 https://blog.youkuaiyun.com/a704397849/article/details/94416778
但那只是在idea运行,没有maven打包jar运行。现在介绍在上篇的基础上增加 打包jar 运行,最后附源码

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>mybatis_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>mybatis_package_demo</name>
    <description>mybatis_package_demo</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- 阿里json -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.41</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <!-- druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.26</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--版本-->
                <version>1.4.2.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.example.mybatis_demo.MybatisDemoApplication</mainClass>
                    <layout>JAR</layout>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!--<compilerArguments>-->
                    <!--<extdirs>libs</extdirs>-->
                    <!--</compilerArguments>-->
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <!-- 打包时将jsp文件拷贝到META-INF目录下-->
            <resource>
                <!-- 指定resources插件处理哪个目录下的资源文件 -->
                <directory>src/main/webapp</directory>
                <!--注意此次必须要放在此目录下才能被访问到-->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
    </build>

</project>

打包jar后运行

在idea中 打开项目的命令行终端
在这里插入图片描述
输入清除打包命令 mvn clean package
在这里插入图片描述

打包完毕
在这里插入图片描述
如果没有设置输出目录的话,打包生成的jar包默认会生成在项目根目录下的target目录,cd target 进入生成的jar包目录
在这里插入图片描述
运行:java -jar mybatis_package_demo-0.0.1-SNAPSHOT.jar

E:\workspace_idea\mybatis_demo\target>java -jar mybatis_package_demo-0.0.1-SNAPSHOT.jar


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.4.RELEASE)

2019-07-06 15:21:52.074  INFO 73272 --- [           main] c.e.mybatis_demo.MybatisDemoApplication  : Starting MybatisDemoApplication v0.0.1-SNAPSHOT on jujumao-456437486 with PID 73272 (E:\workspace_i
dea\mybatis_demo\target\mybatis_demo-0.0.1-SNAPSHOT.jar started by Administrator in E:\workspace_idea\mybatis_demo\target)
2019-07-06 15:21:52.077  INFO 73272 --- [           main] c.e.mybatis_demo.MybatisDemoApplication  : No active profile set, falling back to default profiles: default
2019-07-06 15:21:52.160  INFO 73272 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplication
Context@68f7aae2: startup date [Sat Jul 06 15:21:52 CST 2019]; root of context hierarchy
2019-07-06 15:21:52.671  WARN 73272 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : Skipping MapperFactoryBean with name 'accountMapper' and 'com.example.mybatis_demo.mapper.dbtest.Ac
countMapper' mapperInterface. Bean already defined with the same name!
2019-07-06 15:21:52.671  WARN 73272 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : Skipping MapperFactoryBean with name 'musicMapper' and 'com.example.mybatis_demo.mapper.dbtest2.Mus
icMapper' mapperInterface. Bean already defined with the same name!
2019-07-06 15:21:52.672  WARN 73272 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[com.example.mybatis_demo.mapper]' package. Please check your confi
guration.
2019-07-06 15:21:53.188  INFO 73272 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [
org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$fcbdc7a5] is not eligible for getting processed by all BeanPostProcessors (for example: not e
ligible for auto-proxying)
2019-07-06 15:21:53.679  INFO 73272 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8083 (http)
2019-07-06 15:21:53.701  INFO 73272 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-07-06 15:21:53.701  INFO 73272 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.32
2019-07-06 15:21:53.710  INFO 73272 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environme
nts was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_201\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;E:\w我的资料\软件\apache-maven-3.5.0-bin\apache-maven-3.5.0\b
in;C:\Program Files\Java\jdk1.8.0_201\bin;C:\Program Files\Java\jdk1.8.0_201\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_201\jre\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sy
stem32\WindowsPowerShell\v1.0\;C:\Program Files\IDM Computer Solutions\UltraCompare;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\nodejs\;%ZOOKEEPER_HOME%\bin;C:\Users\Adminis
trator\AppData\Local\Programs\Fiddler;C:\Users\Administrator\AppData\Roaming\npm;.]
2019-07-06 15:21:54.255  INFO 73272 --- [ost-startStop-1] org.apache.jasper.servlet.TldScanner     : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger f
or a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2019-07-06 15:21:54.401  INFO 73272 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-07-06 15:21:54.419  INFO 73272 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2261 ms
2019-07-06 15:21:54.518  INFO 73272 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2019-07-06 15:21:54.525  INFO 73272 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-07-06 15:21:54.527  INFO 73272 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-07-06 15:21:54.527  INFO 73272 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2019-07-06 15:21:54.528  INFO 73272 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
log4j:WARN No appenders could be found for logger (com.alibaba.druid.pool.DruidDataSource).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2019-07-06 15:21:56.121  INFO 73272 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2019-07-06 15:21:56.137  INFO 73272 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
2019-07-06 15:21:56.231  INFO 73272 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.2.17.Final}
2019-07-06 15:21:56.232  INFO 73272 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2019-07-06 15:21:56.275  INFO 73272 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2019-07-06 15:21:56.506  INFO 73272 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2019-07-06 15:21:56.791  INFO 73272 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-07-06 15:21:57.002  INFO 73272 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resou
rce.ResourceHttpRequestHandler]
2019-07-06 15:21:57.227  INFO 73272 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServlet
WebServerApplicationContext@68f7aae2: startup date [Sat Jul 06 15:21:52 CST 2019]; root of context hierarchy
2019-07-06 15:21:57.283  WARN 73272 --- [           main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during
view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-07-06 15:21:58.308  INFO 73272 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/accounts]}" onto public java.lang.String com.example.mybatis_demo.controller.TestControl
ler.getAccounts()
2019-07-06 15:21:58.309  INFO 73272 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/music]}" onto public java.lang.String com.example.mybatis_demo.controller.TestController
.getMusicNames()
2019-07-06 15:21:58.312  INFO 73272 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.Str
ing, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2019-07-06 15:21:58.313  INFO 73272 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView o
rg.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-07-06 15:21:58.338  INFO 73272 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.
ResourceHttpRequestHandler]
2019-07-06 15:21:58.339  INFO 73272 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.Resource
HttpRequestHandler]
2019-07-06 15:21:58.578  INFO 73272 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2019-07-06 15:21:58.580  INFO 73272 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'dbtest2DataSource' has been autodetected for JMX exposure
2019-07-06 15:21:58.580  INFO 73272 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'dbtestDataSource' has been autodetected for JMX exposure
2019-07-06 15:21:58.584  INFO 73272 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located MBean 'dbtestDataSource': registering with JMX server as MBean [com.alibaba.druid.pool:name
=dbtestDataSource,type=DruidDataSource]
2019-07-06 15:21:58.585  INFO 73272 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located MBean 'dbtest2DataSource': registering with JMX server as MBean [com.alibaba.druid.pool:nam
e=dbtest2DataSource,type=DruidDataSource]
2019-07-06 15:21:58.633  INFO 73272 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8083 (http) with context path ''
2019-07-06 15:21:58.639  INFO 73272 --- [           main] c.e.mybatis_demo.MybatisDemoApplication  : Started MybatisDemoApplication in 6.948 seconds (JVM running for 7.39)


测试,浏览器输入 http://127.0.0.1:8083/music
在这里插入图片描述
注:这里是在本地运行jar包,也可以上传到服务上运行,当然java命令直接运行也太简陋了,我之前有分享过一个jar运行脚本有兴趣的可以看看
https://blog.youkuaiyun.com/a704397849/article/details/88369846

源码

链接:https://pan.baidu.com/s/1k2G9x1zk8IE45zHf_nNtGA
提取码:5pbu

注:sql文件在上篇里面有介绍和下载地址。

初次打包springboot jar运行会遇到多少坑我就不想提了,希望能帮助到还不能成功打包springboot项目jar包运行的同学。当然这里只是介绍了一个可以正常打包jar的demo,更多的打包过程需要深入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值