Myeclipse下使用Maven搭建spring boot项目

开发环境:Myeclipse2017、JDK1.6、Tomcat7.0。
Myeclipse下使用Maven搭建spring boot项目,详细过程如下:

1. New -> Project... -> Maven Project
Myeclipse下使用Maven搭建spring boot项目

2. Next, 选择Use default Workspace location。
Myeclipse下使用Maven搭建spring boot项目

3. Next, 选择“maven-archetype-webapp”创建一个webapp目录结构的项目
Myeclipse下使用Maven搭建spring boot项目

4. 填Group Id,Artifact Id,和Package(请参考后面的“关键词”),点击“Finish”

GroupId:一般是公司名或组织名。
ArtifactId:一般是project名。
Packaging:打包类型,jar/war/rar/ear/pom等,默认是jar。
Version:版本号,GroupId+ArtifactId+Packaging+Version构成项目的唯一标识。

Myeclipse下使用Maven搭建spring boot项目

5. 休息片刻,等待MyEclipse创建项目
Myeclipse下使用Maven搭建spring boot项目

创建完成后,文件目录结构如下:
Myeclipse下使用Maven搭建spring boot项目

创建完成后,发现index.jsp报错,打开index.jsp,报错如下:

Myeclipse下使用Maven搭建spring boot项目

右键项目,build path,AddLibrary...

Myeclipse下使用Maven搭建spring boot项目

选择MyEclipse Server Library。

Myeclipse下使用Maven搭建spring boot项目

Next后,选择一个Tomcat,Finish。

Myeclipse下使用Maven搭建spring boot项目

此时index.jsp已经不报错了,如果我们的pom.xml报错,有小红叉的话,可以选maven,Update Project...,问题解决。

Myeclipse下使用Maven搭建spring boot项目

6. (如果不喜欢现在的文件名)修改项目名称和存放路径:项目右键 -> refactor -> rename
Myeclipse下使用Maven搭建spring boot项目

7. 添加代码目录:

如果是MyEclipse2017,只需要在Java Build Path -> Libraries 中,把JRE System Library修改为“Workspace default JRE”就可以自动有那些目录了。

Myeclipse下使用Maven搭建spring boot项目


添加后,test目录也自动有了,最终的项目目录结构如下:

Myeclipse下使用Maven搭建spring boot项目

现在需要搭建spring boot框架,并实现一个HelloWorld的项目,让程序真正运行起来。

一、在pom.xml中引入spring-boot-start-parent,spring官方的叫stater poms,它可以提供dependency management,也就是依赖管理,引入以后在声明其它dependency的时候就不需要version了。

[html] view plain copy
  1. <parent>    
  2.      <groupId>org.springframework.boot</groupId>    
  3.      <artifactId>spring-boot-starter-parent</artifactId>    
  4.      <version>1.5.3.RELEASE</version>    
  5. </parent>  

二、需要在pom.xml中引入spring-boot-starter-web,spring官方解释spring-boot-start-web包含了spring webmvc和tomcat等web开发的特性。

[html] view plain copy
  1. <dependencies>    
  2.       <dependency>    
  3.           <groupId>org.springframework.boot</groupId>    
  4.            <artifactId>spring-boot-starter-web</artifactId>    
  5.        </dependency>    
  6. </dependencies>   

三、如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven的spring-boot:run的话就不需要此配置。

[html] view plain copy
  1. <build>    
  2.       <plugins>    
  3.             <plugin>    
  4.                 <groupId>org.springframework.boot</groupId>    
  5.                <artifactId>spring-boot-maven-plugin </artifactId>    
  6.           </plugin>    
  7.        </plugins>    
  8. </build>  

四、下面开始写程序,我们需要一个启动类,然后在启动类声明让spring boot自动给我们配置spring需要的配置,比如:@SpringBootApplication,为了可以尽快让程序跑起来,我们简单写一个通过浏览器访问hello world字样的例子:

[java] view plain copy
  1. @RestController  
  2. @SpringBootApplication  
  3. public class ExampleSpringBoot {  
  4.     @RequestMapping("/home")  
  5.     String home() {  
  6.         return "Hello World!";  
  7.     }  
  8.       
  9.     public static void main(String[] args) {  
  10.         SpringApplication.run(ExampleSpringBoot.class, args);    
  11.     }  
  12. }  

其中@SpringBootApplication声明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan。

@RestController返回json字符串的数据,直接可以编写RESTFul的接口。

五、运行我们的Application,我们先介绍第一种运行方式。第一种方式特别简单:右键Run As -> Java Application。之后打开浏览器输入地址:http://127.0.0.1:8080/home 就可以看到Hello world!了。
第二种方式右键project – Run as – Maven build – 在Goals里输入spring-boot:run ,然后Apply,最后点击Run。

六、运行报错
启动时报错NoClassDefFoundError: org/apache/juli/logging/LogFactory
参见下面的解决方法
http://blog.****.net/a78270528/article/details/77548779

七、完整的pom.xml文件

[html] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>com.bocom</groupId>  
  5.     <artifactId>maventest</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <!-- 继承父包 -->  
  9.     <parent>  
  10.         <groupId>org.springframework.boot</groupId>  
  11.         <artifactId>spring-boot-starter-parent</artifactId>  
  12.         <version>1.5.3.RELEASE</version>  
  13.         <relativePath></relativePath>  
  14.     </parent>  
  15.     <name>maventest</name>  
  16.     <url>http://maven.apache.org</url>  
  17.     <dependencies>  
  18.         <dependency>  
  19.             <groupId>org.springframework.boot</groupId>  
  20.             <artifactId>spring-boot-starter-web</artifactId>  
  21.         </dependency>  
  22.           
  23.         <dependency>  
  24.             <groupId>junit</groupId>  
  25.             <artifactId>junit</artifactId>  
  26.             <version>3.8.1</version><!--$NO-MVN-MAN-VER$-->  
  27.             <scope>test</scope>  
  28.         </dependency>  
  29.           
  30.         <dependency>  
  31.             <groupId>org.apache.tomcat.embed</groupId>  
  32.             <artifactId>tomcat-embed-logging-juli</artifactId>  
  33.             <version>8.0.23</version>  
  34.         </dependency>  
  35.     </dependencies>  
  36.     <build>  
  37.         <finalName>maventest</finalName>  
  38.         <plugins>    
  39.                 <plugin>    
  40.                     <groupId>org.springframework.boot</groupId>    
  41.                     <artifactId>spring-boot-maven-plugin </artifactId>    
  42.                 </plugin>    
  43.             </plugins>    
  44.     </build>  
  45. </project>  

至些,我们的Spring boot项目已经搭建完成,并成功的运行了HelloWorld的项目。