进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件)

一、Maven项目的新建

1、鼠标右键---->New----->Other...

2、直接点击下一步

3、默认的是maven-archetype-quickstart,不用修改,直接点击下一步

4、 Group Id 中输入项目的基本包名。

Artifact Id 中输入项目名。

Version 中的值默认就行,不进行选择。

Package 中写的是默认生成的一个包名,不写也可以。

   接着点击完成就可以了。

5、创建好项目后结构如下:

这就是个普通的maven项目,也就是单机版项目。

二、Maven项目的配置

首先我们配一下项目的jdk,检查下项目的输出位置,Java Complier 不用管,因为接下来我们会在pom.xml 中配置使用maven的编译插件。

这里一般还需要新建两个资源目录,src/main/resources和src/test/resources,并且添加相应的输出路径。具体可参考我的另一篇博客----Eclipse中构建Maven项目的完整过程---普通Web项目.

接下来我们配置项目的pom.xml ,根据需要进行配置,我这里提供一个基础版的xml,只有一些最基本的配置,可以把服务跑起来,大家可以在这个基础上添加自己项目需要的配置

<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.sumavision.sums</groupId>
<artifactId>wangbo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>wangbo</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<mybatis.spring.boot.version>1.2.0</mybatis.spring.boot.version>
</properties> <parent>
<!-- 从springboot中继承默认值 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent> <dependencies>
<!-- 为web应用程序添加典型的依赖项 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!-- springboot测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <!-- mysql连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency> <!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency> <!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> <!-- 缓存 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency> </dependencies> <build>
<plugins>
<!-- maven编译打包插件 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- springboot编译,生成可执行jar包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

配置完pom.xml 后对项目进行刷新,右键项目----->Maven----->Update Project...

接下来写及几个类,测试一下服务。

目录结构:

App.java

package com.sumavision.wangbo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* SpringBoot 项目启动类
*
*/
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}

UserController.java

package com.sumavision.wangbo.controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class UserController { @RequestMapping("/user/{name}")
public String login(@PathVariable("name") String name){
return name+"登陆成功!";
} @RequestMapping("/xxx/{name}")
public String loginout(@PathVariable("name") String name){
return name+"退出成功!";
} }

三、项目运行

可以选择在eclipse中直接右键运行App.java 类中的main方法,直接就可以在浏览器中访问了。这种比较简单就不说了。

说一下打jar包的运行方式:

项目右键----->Run As------->Maven build...,接着在Goals后面写上打包命令,一般是先清除,再打包,所以写的是clean package,接着点击Run就可以了。

控制台显示的打包日志

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building wangbo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ wangbo ---
[INFO] Deleting H:\workspace\learn\wangbo\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ wangbo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory H:\workspace\learn\wangbo\src\main\resources
[INFO] skip non existing resourceDirectory H:\workspace\learn\wangbo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ wangbo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to H:\workspace\learn\wangbo\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ wangbo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory H:\workspace\learn\wangbo\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ wangbo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to H:\workspace\learn\wangbo\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ wangbo ---
[INFO] Surefire report directory: H:\workspace\learn\wangbo\target\surefire-reports -------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.sumavision.wangbo.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec - in com.sumavision.wangbo.AppTest Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ wangbo ---
[INFO] Building jar: H:\workspace\learn\wangbo\target\wangbo-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.6.RELEASE:repackage (default) @ wangbo ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.016 s
[INFO] Finished at: 2017-08-19T17:17:24+08:00
[INFO] Final Memory: 30M/277M
[INFO] ------------------------------------------------------------------------

显示打包成功,jar 包位于 H:\workspace\learn\wangbo\target\wangbo-0.0.1-SNAPSHOT.jar

接着可以直接在命令行中通过java -jar 命令启动该jar包,可以看到以下日志

C:\Users\Administrator>java -jar H:\workspace\learn\wangbo\target\wangbo-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.6.RELEASE) 2017-08-19 17:20:59.133 INFO 7180 --- [ main] com.sumavision.wangbo.App : Starting App v0.0.1-SNAPS
HOT on wangbo with PID 7180 (H:\workspace\learn\wangbo\target\wangbo-0.0.1-SNAPSHOT.jar started by Administrator in C:\Users\
Administrator)
2017-08-19 17:20:59.138 INFO 7180 --- [ main] com.sumavision.wangbo.App : No active profile set, fa
lling back to default profiles: default
2017-08-19 17:20:59.245 INFO 7180 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springfram
ework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5ef04b5: startup date [Sat Aug 19 17:20:59 CST 2017
]; root of context hierarchy
2017-08-19 17:21:01.058 INFO 7180 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with p
ort(s): 8080 (http)
2017-08-19 17:21:01.075 INFO 7180 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2017-08-19 17:21:01.076 INFO 7180 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine:
Apache Tomcat/8.5.16
2017-08-19 17:21:01.199 INFO 7180 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embed
ded WebApplicationContext
2017-08-19 17:21:01.199 INFO 7180 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContex
t: initialization completed in 1957 ms
2017-08-19 17:21:01.375 INFO 7180 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatc
herServlet' to [/]
2017-08-19 17:21:01.380 INFO 7180 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characte
rEncodingFilter' to: [/*]
2017-08-19 17:21:01.381 INFO 7180 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHt
tpMethodFilter' to: [/*]
2017-08-19 17:21:01.382 INFO 7180 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutF
ormContentFilter' to: [/*]
2017-08-19 17:21:01.385 INFO 7180 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestC
ontextFilter' to: [/*]
2017-08-19 17:21:01.739 INFO 7180 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAd
vice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5ef04b5: startup date [Sat Aug
19 17:20:59 CST 2017]; root of context hierarchy
2017-08-19 17:21:01.837 INFO 7180 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/user/{name}]}"
onto public java.lang.String com.sumavision.wangbo.controller.UserController.login(java.lang.String)
2017-08-19 17:21:01.839 INFO 7180 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/xxx/{name}]}"
onto public java.lang.String com.sumavision.wangbo.controller.UserController.loginout(java.lang.String)
2017-08-19 17:21:01.874 INFO 7180 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto
public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.au
toconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-08-19 17:21:01.876 INFO 7180 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produce
s=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErro
rController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-08-19 17:21:01.909 INFO 7180 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars
/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-19 17:21:01.910 INFO 7180 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] ont
o handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-19 17:21:01.948 INFO 7180 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favi
con.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-19 17:21:02.105 INFO 7180 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX
exposure on startup
2017-08-19 17:21:02.187 INFO 7180 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s)
: 8080 (http)
2017-08-19 17:21:02.196 INFO 7180 --- [ main] com.sumavision.wangbo.App : Started App in 3.426 seco
nds (JVM running for 3.924)

由日志

  Tomcat started on port(s): 8080 (http)
  Started App in 3.426 seconds (JVM running for 3.924)

可以知道项目启动成功了。

四、项目访问

到此项目启动成功,可以在控制台Ctrl+C 结束项目运行

五、相关命令

Linux下启动应用:

springboot在linux下后台启动应用,首先cd到jar包所在目录,接着

java -jar sums-manage-0.0.1-SNAPSHOT.jar  属于前台启动,Ctrl+C 会关闭应用

java -jar sums-manage-0.0.1-SNAPSHOT.jar &  属于后台启动,Ctrl+C 不会关闭应用,但是关闭shell程序就会关闭应用

nohup java -jar sums-manage-0.0.1-SNAPSHOT.jar &  属于后台启动,应用不会被其他操作打断

Linux下关闭应用:

ps -ef|grep sums-manage-0.0.1-SNAPSHOT.jar  查看进程号

kill -9 xx  强制终止进程

Linux下查看应用日志:

tail -f nohup.out  查看线上日志,是通过nohup.out文件查看的

如果想查看日志记录文件,找到项目中配置的地方直接查看就行

一般maven用到的命令:

clean compile  清除再编译

clean package  清除再打包

Eclipse 中构建 Maven 项目的完整过程 - SpringBoot 项目的更多相关文章

  1. Eclipse中构建maven项目的两种方式

    Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...

  2. Eclipse 中构建 Maven 项目的完整过程 - 动态 Web 项目

    进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) 一.Maven项目的新建 1.鼠标右键---->New--- ...

  3. eclipse中使用Maven新建Servlet2.5的Web项目

    前言 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的 ...

  4. Eclipse中使用Maven的Jetty插件Debug Web项目

    1.环境配置 JAVA_HOME=D:\Program Files\Java\jdk1.7.0_80 JRE_HOME=%JAVA_HOME%\jre CLASSPATH=.;%JAVA_HOME%/ ...

  5. 利用Eclipse中的Maven构建Web项目(三)

    利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...

  6. 利用Eclipse中的Maven构建Web项目报错(二)

    利用Eclipse中的Maven构建Web项目 1.错误描述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.a ...

  7. 利用Eclipse中的Maven构建Web项目报错(一)

    利用Eclipse中的Maven构建Web项目 1.在进行上述操作时,pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4 ...

  8. 利用Eclipse中的Maven构建Web项目(二)

    利用Eclipse中的Maven构建Web项目 1.新建源文件夹,Java Resources鼠标右键,"New-->Source Folder" 2.新建src/main/ ...

  9. 利用Eclipse中的Maven构建Web项目(一)

    利用Eclipse中的Maven构建Web项目 1.新建一个Maven Project,"New-->Other..." 2.选择"Maven Project&qu ...

随机推荐

  1. LR 11录制IE起不来

    注:LR 11一般使用的是IE8或IE9 1.在录制脚本时Start Recoding中,默认如下,这样有可能IE打不开,需要更改路径,到对应的IE路径再尝试. 2.降低IE版本到IE8或者9 3.I ...

  2. 常用Linux VPS/服务器SSH连接工具 - Xshell下载与使用

    我们很多网友可能初次接触Linux VPS.服务器,所以在购买完毕VPS主机不知道如何登录.有些网友甚至直接类似WIN系统一样直接在桌面远程连接工具连接,可想而知肯定是无法连接的.因为如果我们购买的是 ...

  3. 上传到HDFS上的文件遇到乱码问题

    1.通过eclipse中的hdfs插件上传文件,上传成功,但是查看是乱码. 查阅文件本身的编码方式,发现是utf-8,同时文件在项目目录下,显示正常,因为我把它的编码格式也设成了utf-8. 2.通过 ...

  4. springboot无法加载oracle驱动终极解决

    .ctrl+shirt+s .找到 Maven: com.oracle:ojdbc6: .找到classes 下的路径C:\Users\Administrator\.m2\repository\com ...

  5. 4-3 重构发送post请求

    当创建好一个post请求后 怎么测试呢?

  6. 桌面小部件Wight父类AppWidgetProvider的三个方法

    onUpdate()这个方法会在每次更新App Widget的时候调用,数据更新的逻辑都写在这个方法里边.而且要注意的是:在用户添加小部件的时候,会首先调用这个方法,应该在这个方法里进行初始化操作,比 ...

  7. 从知乎首页用户操作入口学习到的CSS技巧 - 合理利用伪元素实现一些装饰样式

    最近在模仿做一个静态的PC版知乎,在模仿的过程中,从知乎工程师的方法中学到了不少知识,比如CSS方面的,以下介绍一个今天学到的伪元素的技巧. 示例 DOM结构为: <div class=&quo ...

  8. [c#.net]遍历一个对象中所有的属性和值

    利用反射 SpDictItem sp = GetCFHObject.GetSpItem("); PropertyInfo[] propertys = sp.GetType().GetProp ...

  9. var let const的区别

    1. 变量提升: 浏览器在运行代码之前会进行预解析,不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部.   2. 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不 ...

  10. mysql ERROR 1451 (23000)

    问题描述:报错如下:ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint提示有外键约束, ...