前言
zk环境自行搭建确立好,此处省略:zookeeper集群部署(Linux和Windows[含一键启动脚本])
总体步骤分为:
- maven打成不含依赖的jar包;
- 服务器上传项目需要的lib目录;
- 运行jar并指定外部依赖lib;
Maven 打包
Maven打包和遇到的问题在:
Maven建立外部依赖目录
在Maveb build命令中Goals
一栏输入:
dependency:copy-dependencies
便会在项目的target下生成dependency目录,上传到服务器改名为lib即可。
Maven打成不含依赖的Jar
未指定main函数
如果直接运行jar会有如下结果:
java -Dloader.path=./lib/ -jar dubbo-demo-provider-1.5.3.RELEASE.jar
`no main manifest attribute, in dubbo-demo-provider-1.5.3.RELEASE.jar`
使得有main可以运行需要:
带依赖的包(舍弃)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
但是含有依赖,过于jar包过大,多个jar不变上传管理,所以要打成:
不含依赖的Jar
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.imooc.springboot.dubbo.demo.consumer.MainConsumer</mainClass>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
运行Jar程序
命令:
java -Dloader.path=./lib/ -jar dubbo-demo-provider-1.5.3.RELEASE.jar
端口占用问题
默认provider和consumer都是8080端口,导致该问题,应该在application.properties中配置server.port=不同的端口
。
端口占用情况查看及解决(杀除):
netstat -anp |grep 8081
ps -ef | grep 进程号
kill 进程号
也可以在启动的时候直接看红色的进程号来杀除: