服务器部署spring cloud项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Dalston.SR4</spring-cloud.version>
</properties>
想生成jar文件需要注意几点:
- **项目的版本一定先要能在STS,全名spring tool suits,里面能运行 **
- 不能依靠STS的export和maven build,亲自尝试了三个小时没有成功,都是可以生成jar包,但是都不能运行
- 安装外部maven单干
接下来细细说:
- 项目是基于STS开发的,开发好了,因为要迁移数据库和服务器地址,DNS没有配置,所以用ip需要重新配置properties.yml文件
- sts的export是直接导出可执行jar,注意和jar的区别。
图二需要说明一下Library handling的三个选项,前两个是把项目需要引用的jar放到最后打包的jar里面,区别是文件组织方式不同,第三个是直接新建一个新的name_lib文件夹存放lib jar包。
但是导出后运行报错如下:
查看多方解释无解,分析后觉得是spring加载方式不对,但是这是sts或eclipse默认的导出方式。
第二使用maven build导出jar包。
这里生成时有个问题,因为项目写了单元测试在测试类里面,但是构建时无法加载spring的applicationcontext而失败。因此,如果写了测试类,建议勾上skip tests。
这样生成了之后,还是错误的,代码不贴了,分析后觉得是hibernate没有生成entitymanager可能是哪里结构出错。
成功实践
**最终取得真经,还是要靠单干。**直接把项目里面的src文件夹和pom.xml拿出来,放到一个新的文件夹里面,然后把cmd或者powershell切换到当前目录,当然需要先安装jdk和maven(应该没有人没装),运行mvn install(还是一样的,有测试的最好跳过,加个 -DskipTests),自动生成target文件夹,里面就有一个jar文件,世界如此美妙。