idea开发spring-boot以jar和war发布运行

1、创建一个Maven项目,如下图所示:

2、选择Maven后,其他什么都不选择,直接Next,然后输入GroupId和ArtifactId,如下图所示:

3、输入Project name和选择项目保存路径,如下图所示:

4、创建好之后的目录如下图所示,其中java是放置java源代码的,resources是放置配置文件的,pom.xml是添加Maven依赖的jar文件的。

5、首先需要添加spring-boot-starter-parent,只需要在Maven仓库中搜索即可,如下图所示:

6、选择之后进入到版本选择列表,如下图所示:

7、选择版本后即可出现添加pom.xml的内容,如下图所示:

8、在pom.xml中添加parent标签,然后将上图中的信息添加到parent标签内,

9、在maven搜索spring-boot-starter-web,然后找到对应的pom.xml内容,如下图所示:

10、在pom.xml中新增一个dependencies标签,然后将maven中的内容拷贝到此标签内,如下图所示:

11、在java目录中创建一个com.demo包,如下图所示:

12、创建一个Application.java,如下图所示:

13、添加相应的spring-boot代码,如下图所示:

14、选择Application.java右键单击,在弹出的菜单中选择Debug 'Application'运行程序,如下图所示:

15、运行之后打印出入下信息,说明一个简单的spring boot程序已经运行起来了,如下图所示:

16、打开浏览器输入http://127.0.0.1:8080,然后就会出现Hello World,说明一个web服务搭建好了,如下图所示:

17、由于默认的web服务使用的端口是8080,如果想进行更改就得添加配置文件,首先在resources目录中添加一个application.yml文件,如下图所示:

18、依次输入web服务所使用的端口,以及tomcat所使用的编码格式,如下图所示:

19、但是运行后出现以下错误:

Connected to the target VM, address: '127.0.0.1:35430', transport: 'socket'
17:01:45.779 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/D:/InstallFile/java/jre/lib/charsets.jar, file:/D:/InstallFile/java/jre/lib/deploy.jar, file:/D:/InstallFile/java/jre/lib/ext/access-bridge-64.jar, file:/D:/InstallFile/java/jre/lib/ext/cldrdata.jar, file:/D:/InstallFile/java/jre/lib/ext/dnsns.jar, file:/D:/InstallFile/java/jre/lib/ext/jaccess.jar, file:/D:/InstallFile/java/jre/lib/ext/jfxrt.jar, file:/D:/InstallFile/java/jre/lib/ext/localedata.jar, file:/D:/InstallFile/java/jre/lib/ext/nashorn.jar, file:/D:/InstallFile/java/jre/lib/ext/sunec.jar, file:/D:/InstallFile/java/jre/lib/ext/sunjce_provider.jar, file:/D:/InstallFile/java/jre/lib/ext/sunmscapi.jar, file:/D:/InstallFile/java/jre/lib/ext/sunpkcs11.jar, file:/D:/InstallFile/java/jre/lib/ext/zipfs.jar, file:/D:/InstallFile/java/jre/lib/javaws.jar, file:/D:/InstallFile/java/jre/lib/jce.jar, file:/D:/InstallFile/java/jre/lib/jfr.jar, file:/D:/InstallFile/java/jre/lib/jfxswt.jar, file:/D:/InstallFile/java/jre/lib/jsse.jar, file:/D:/InstallFile/java/jre/lib/management-agent.jar, file:/D:/InstallFile/java/jre/lib/plugin.jar, file:/D:/InstallFile/java/jre/lib/resources.jar, file:/D:/InstallFile/java/jre/lib/rt.jar, file:/F:/sunxj/Idea/wincom/SpringBootDemoHello/target/classes/, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.1.0.RELEASE/spring-boot-starter-web-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.1.0.RELEASE/spring-boot-starter-json-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.7/jackson-databind-2.9.7.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.7/jackson-datatype-jdk8-2.9.7.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.7/jackson-datatype-jsr310-2.9.7.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.7/jackson-module-parameter-names-2.9.7.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.1.0.RELEASE/spring-boot-starter-tomcat-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.12/tomcat-embed-core-9.0.12.jar, file:/C:/Users/Administrator/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.12/tomcat-embed-el-9.0.12.jar, file:/C:/Users/Administrator/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.12/tomcat-embed-websocket-9.0.12.jar, file:/C:/Users/Administrator/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.13.Final/hibernate-validator-6.0.13.Final.jar, file:/C:/Users/Administrator/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar, file:/C:/Users/Administrator/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar, file:/C:/Users/Administrator/.m2/repository/com/fasterxml/classmate/1.4.0/classmate-1.4.0.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-web/5.1.2.RELEASE/spring-web-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-beans/5.1.2.RELEASE/spring-beans-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-webmvc/5.1.2.RELEASE/spring-webmvc-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-aop/5.1.2.RELEASE/spring-aop-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-context/5.1.2.RELEASE/spring-context-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-expression/5.1.2.RELEASE/spring-expression-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-starter/2.1.0.RELEASE/spring-boot-starter-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot/2.1.0.RELEASE/spring-boot-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.1.0.RELEASE/spring-boot-autoconfigure-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.1.0.RELEASE/spring-boot-starter-logging-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, file:/C:/Users/Administrator/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, file:/C:/Users/Administrator/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.11.1/log4j-to-slf4j-2.11.1.jar, file:/C:/Users/Administrator/.m2/repository/org/apache/logging/log4j/log4j-api/2.11.1/log4j-api-2.11.1.jar, file:/C:/Users/Administrator/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar, file:/C:/Users/Administrator/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar, file:/C:/Users/Administrator/.m2/repository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-test/2.1.0.RELEASE/spring-boot-test-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/2.1.0.RELEASE/spring-boot-test-autoconfigure-2.1.0.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar, file:/C:/Users/Administrator/.m2/repository/net/minidev/json-smart/2.3/json-smart-2.3.jar, file:/C:/Users/Administrator/.m2/repository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar, file:/C:/Users/Administrator/.m2/repository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar, file:/C:/Users/Administrator/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar, file:/C:/Users/Administrator/.m2/repository/junit/junit/4.12/junit-4.12.jar, file:/C:/Users/Administrator/.m2/repository/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar, file:/C:/Users/Administrator/.m2/repository/org/mockito/mockito-core/2.23.0/mockito-core-2.23.0.jar, file:/C:/Users/Administrator/.m2/repository/net/bytebuddy/byte-buddy/1.9.3/byte-buddy-1.9.3.jar, file:/C:/Users/Administrator/.m2/repository/net/bytebuddy/byte-buddy-agent/1.9.3/byte-buddy-agent-1.9.3.jar, file:/C:/Users/Administrator/.m2/repository/org/objenesis/objenesis/2.6/objenesis-2.6.jar, file:/C:/Users/Administrator/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar, file:/C:/Users/Administrator/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar, file:/C:/Users/Administrator/.m2/repository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar, file:/C:/Users/Administrator/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-core/5.1.2.RELEASE/spring-core-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-jcl/5.1.2.RELEASE/spring-jcl-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/springframework/spring-test/5.1.2.RELEASE/spring-test-5.1.2.RELEASE.jar, file:/C:/Users/Administrator/.m2/repository/org/xmlunit/xmlunit-core/2.6.2/xmlunit-core-2.6.2.jar, file:/D:/InstallFile/Idea/IntelliJ%20IDEA%202018.1.5/lib/idea_rt.jar, file:/C:/Users/Administrator/.IntelliJIdea2018.1/system/captureAgent/debugger-agent.jar]
17:01:46.102 [background-preinit] DEBUG org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
17:01:46.113 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator.
17:01:46.113 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.resolver.TraverseAllTraversableResolver as ValidatorFactory-scoped traversable resolver.
17:01:46.113 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
17:01:46.114 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
17:01:46.114 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.
17:01:47.248 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:554)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:500)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:467)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:448)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:447)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:444)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:332)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:207)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:190)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:177)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:163)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
	at com.demo.Application.main(Application.java:18)
Caused by: org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
 in 'reader', line 3, column 11:
        tomcat:
              ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:870)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:358)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:214)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:144)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:85)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:123)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:547)
	at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:161)
	at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:134)
	at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:75)
	at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:572)
	at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:526)
	... 23 common frames omitted

出现此错误是由于application.yml书写格式出错所引起的,如下图所示:

20、只需要在8081和UTF-8前加一个空格即可成功运行,如下图所示:

21、此时在浏览器中将端口8080换成8081即可,如下图所示:

22、此时需要将整个项目发布成jar或者war时,需要在pom.xml中添加一个spring-boot-maven-plugin插件,添加方法如下图所示:

23、然后选择在Run/Debug Configurations配置界面中添加一个Maven,如下图所示:

24、输入Name为MVN,然后选择项目的工程目录,然后在Command line中输入package,如下图所示:

25、然后在Idea的左下角有一个Terminal命令行工具,如下图所示:

26、然后在pom.xml中找到该项目的groupId,在下边添加一个<packaging>jar</packaging>,用于说明打包是打成jar的,如下图所示:

27、然后在命令行中输入mvn package,此时就会下载相应的jar,如下图所示:

28、最后提示BUILID SUCCESS,表示打包成功,如下图所示:

29、打包的jar在项目的根目录中,如下图所示:

30、打开dos窗口进入到项目的目录中,然后执行java -jar SpringBoot-Demo-Hello-1.0-SNAPSHOT.jar即可,如下图所示:

31、然后在浏览器中输入:http://127.0.0.1:8081,如下图所示:

32、如果要打包成war,则需要将pom.xml文件中的packaging内容将jar更改为war,如下图所示:

33、然后再次输入mvn package,然后开始下载打包war目录的信息,如下图所示:

34、最后编译成功,如下图所示:

35、此时在项目的根目录中就会有一个SpringBoot-Demo-Hello-1.0-SNAPSHOT.war,如下图所示:

36、然后将SpringBoot-Demo-Hello-1.0-SNAPSHOT.war更改名字为SpringBoot.war,并放置到tomcat目录中的webapps目录中,如下图所示:

37、然后运行tomcat,即可多出一个SpringBoot目录,如下图所示:

38、然后再次输入127.0.0.1:8081,然后就出现Hello World,如下图所示:

39、而tomcat的端口是8080,这说明运行的Spring Boot的web应用于tomcat可以不在同一个端口下,如下图所示:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值