普通的javaweb项目要发布的话,一般就三种方法:
1.把项目直接放在tomcat的webApps下启动tomcat即可。
2.把项目打包成war包放在webApps下,启动tomcat,自动解压war包。
3.采用显示定义上下文的方法(上面两种都是隐式定义上下文),也就是改配置文件的方法,要么在Tomcat的conf/Catalina/localhost目录下创建一个XML文件;要么在Tomcat的conf/server.xml文件中添加一个Context元素。
但现在发布的是微服务架构,何为微服务,就是多个工程,而且每个工程都相当于以前的一个工程,都自带了一个Tomcat。然后这里我们有一个很方便的部署发布的方法,用运行jar包来发布。下面讲一下步骤:
这里我们用的开发工具是Spring Tool Suite,项目构建工具是Maven
1.先要将将项目中本来的jar包清除一下,这里我们其实只关注每个工程target夹中的jar包。
点击项目,右键,run as Maven Clean
(附:要是开发的时候,clean后项目有错误提示,那是因为引用的jar包被clean了,可以通过项目右键 Maven->update project来恢复)
clean后,检查项目的target文件夹下没有jar包的话就可以了。
2.创建jar包:
项目右键,run as->maven build...
然后在goals里写package:
然后run就行了。
每个工程都走这两步,然后就都有相对应的包。
然后这个时候我们想运行项目就非常方便了,只要在命令行里,去到jar包相应的目录下敲
java -jar xxxxxxxx.jar
即可。
为了方便,我们这里一般写好脚本,就这一行代码,保存为.bat后,双击该文件项目就会运行了。
然后讲一下部署的,这里先用windows系统,为了方便测试:
一、windows service系统配置
主要完成三个工作:装iis服务,JDK(java),配置安全工作组(开端口)
1.装iis服务,打开服务器管理器--》添加角色和功能--》,在角色处选中>Web服务器(IIS)、在功能处选中>(.NET Framework 4.5)、IIS可承载Web核心和HTTP代理上的RPC 按照即可。
2.JDK安装与在本地电脑安装一样。
3.配置安全工作组(就是开外网可以访问的端口):云服务器ECS-->网络和安全—》安全组。点击配置规则,在配置界面配置相应的端口即可(对于微服务,只需要配置入口端口接口,比如gate一个端口即可)。
2019-7.5补充:关于有引入自己的jar要加把jar先进本地maven仓库才能maven pacakge的问题
项目抽象出了一个公共的工程,common工程,虽然也是springBoot的项目,但没有启动类,也就不能启动的,只是把后台几个服务工程的公共的实体啊工具类什么的抽象出来。
然后在其他工程只要在maven的pom中像引用其他jar包一样引用它就好了。
开发的时候没有问题,但打包的时候,采用上面讲的package的方法一直报错,就找不到公共工程里面的类,就很奇怪,明明有这些maven依赖啊,如下图所示:
疯狂maven clean,然后maven update再maven package都没用。。。。
然后就想,怎么在pom中可以引用到自己的jar包呢,maven应该是先去本地仓库找,然后不行再去中央仓库或者镜像找,然后我们看上面的图,其他的都有在本地放库中的路径,只有这个common的jar也就我们自己的公共工程没有。
然后我也去本地仓库目录找了下好像确实没有。
emmmm问题好像找到了
于是就百度如何将自己的jar包加进本地仓库中(本来想自己建文件夹的,发现好像很不简单很有规律)
就发现了mvn install这个命令
然后sts也有这个maven的install命令,就对这个common工程跑:
发现这个命令的作用好像有两个:
1. 和package一样,在target下面有相关的项目jar包还有其他也一样的文件
2. 在本地maven仓库按照pom中你的groupid什么的建文件夹并放jar进去
3. 在本地的maven仓库的一个和pom相关的文件把common的pom加进去:
--- maven-install-plugin:2.5.2:install (default-install) @ gzy-sc-common ---
[INFO] Installing D:\xiangmu\gzy\gzy\gzy_master\gzy-sc-common\target\gzy-sc-common-1.0-SNAPSHOT.jar to D:\feianzhuang\repository\com\gzy\gzy-sc-common\1.0-SNAPSHOT\gzy-sc-common-1.0-SNAPSHOT.jar
[INFO] Installing D:\xiangmu\gzy\gzy\gzy_master\gzy-sc-common\pom.xml to D:\feianzhuang\repository\com\gzy\gzy-sc-common\1.0-SNAPSHOT\gzy-sc-common-1.0-SNAPSHOT.pom
然后再其他工程maven update,maven clean 重新maven package,问题解决~
总结就是,其他工程如果有在pom中引用自己写的jar包,要用maven install命令把这个jar包加进本地maven仓库先,然后引用了它的工程才能正常用maven pacakge打包,否则会报错找不到那个jar中的类