优秀的编程知识分享平台

网站首页 > 技术文章 正文

开发好物推荐8之自动化部署插件,再也不用登录SSH

nanyue 2024-10-19 06:46:55 技术文章 8 ℃

前言

传统的部署springboot项目,需要先打包成jar或者war,然后上传到Linux服务器,进行部署。现在有很多公司用Jenkins来做自动化部署,但是Jenkins对于我们做简单的项目部署太重了,有没有一个插件是直接集成在maven里面,直接在IDE内部署服务到远程?答案是肯定的,这就是我今天要推荐的自动化远程部署插件wagon-maven-plugin。

推荐理由

  • 简单集成
  • 一行命令快速远程部署,不用登录Linux

实践

1 pom 中配置 wagon-ssh


源码

		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>2.8</version>
			</extension>
		</extensions>

2 配置wagon-maven-plugin


        <plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<serverId>linux-server-dev</serverId>
					<fromFile>target/${pack-name}</fromFile>
					<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
					<commands>
						<!-- Kill Old Process -->
						<command>pkill -f ${pack-name}</command>
						<command>rm -f ${service-path}/myproject.log</command>
						<!-- Restart jar package,write result into meivit.log -->
						<command><![CDATA[nohup java -jar ${service-path}/${pack-name} > ${service-path}/myproject.log 2>&1 & ]]></command>
						<command><![CDATA[netstat -nptl]]></command>
						<command><![CDATA[ps -ef | grep java | grep -v grep]]></command>
					</commands>
					<!-- 运行命令 mvn clean package wagon:upload-single wagon:sshexec -->
					<displayCommandOutputs>true</displayCommandOutputs>
				</configuration>
			</plugin>

如果是tomcat部署只需换命令:

			<configuration>
				<fromFile>target/javawebdeploy.war</fromFile>
				<!-- 上传到Tomcat的webapps目录下 -->
				<url>scp://user:password@192.168.20.128/coder/tomcat/apache-tomcat-7.0.55/webapps</url>
				<commands>
					<!-- 重启Tomcat -->
					<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>
					<command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>
					<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>
				</commands>
				<displayCommandOutputs>true</displayCommandOutputs>
			</configuration>

3 配置命令中属性参数


	<properties>
		<java.version>11</java.version>
		<service-path>/opt</service-path>
		<pack-name>myproject.jar</pack-name>
		<remote-addr>192.168.3.189</remote-addr>
		<remote-username>root</remote-username>
		<remote-passwd>123456</remote-passwd>
	</properties>

4 运行部署命令

mvn clean package wagon:upload-single wagon:sshexec



5 部署成功




总结

从此部署,只用要给命令就在本地搞定了。

最近发表
标签列表