maven 使用 wagon-maven-plugin 自动编译并发布jar到服务器

maven java 文章 2024-03-31 21:14 518 0 全屏看文

AI助手支持GPT4.0

pom文件里追加下面的操作可以自动发布:

<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>wagon-maven-plugin</artifactId>
	<version>1.0</version>
	<configuration>
		<fromFile>target/${pack-name}</fromFile>
		<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
		<commands>
			<!-- Kill Old Process -->
			<command>kill -9 `ps -ef |grep ${project.artifactId}.jar|grep -v "grep" |awk '{print $2}'`</command>
			<!-- Restart jar package,write result into renren.log -->
			<command><![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/sanshu.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>


代码解释如下:

这段POM (Project Object Model) 代码配置了一个 Maven 插件,wagon-maven-plugin,用于在 Maven 构建过程中执行远程操作,例如上传文件和执行远程服务器上的命令。以下是详细解释:

  • groupId & artifactId: 这些元素指定了插件的 Maven 坐标。对于此段代码,它指定了 wagon-maven-plugin,一个由 org.codehaus.mojo 组提供的 Maven 插件。

  • version: 插件版本号为 1.0。

  • configuration: 配置部分详细指定了插件的运行配置。

    • 第一个命令用于杀死旧的进程,通过查找包含项目的 artifactId 在其命令行中的 Java 进程。

    • 第二个命令重启 jar 包,并将输出重定向到一个日志文件中。

    • 第三个和第四个命令分别用于检查网络端口的监听状态和查找运行中的 Java 进程。

    • fromFile: 指定了要上传的文件。这里使用了 Maven 属性 ${pack-name} 来动态指定文件名。这意味着你可以在 Maven 的配置文件中指定 pack-name 的值,它将被解析并用于替换这个占位符。

    • url: 指定了文件上传的目标 URL。这里使用了 scp 协议(安全复制协议),并且动态插入了多个 Maven 属性,包括远程服务器的用户名、密码、地址以及服务路径。这些都被包含在 CDATA 区域内,允许包含特殊字符而不被 XML 解析器处理。

    • commands: 定义了一系列在远程服务器上执行的命令。

    • displayCommandOutputs: 设置为 true,意味着插件会显示每个执行命令的输出。

  • 运行命令: 注释中提到的命令 mvn clean package wagon:upload-single wagon:sshexec 说明了如何使用这个插件。clean package 会清理旧的构建并创建一个新的包,wagon:upload-single 会上传这个包到配置的远程位置,而 wagon:sshexec 会在远程服务器上执行配置的命令序列。

总之,这段代码配置的 Maven 插件提供了一种机制,通过它,开发者可以在构建过程中自动化地上传文件到远程服务器,并在服务器上执行一系列预定义的命令,例如重启应用程序。这种自动化可以显著提高部署效率,特别是在持续集成/持续部署(CI/CD)流程中。


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
maven的pom中如何引用本地包而不是仓库里的
java wagon-maven-plugin插件说明
maven 使用 wagon-maven-plugin 自动编译并发布jar到服务器
centos下安装maven
能不能在 maven build之后执行dos命令
随便看看
企业微信通讯录账号被管理员误/恶意删除,怎么办? 9389
问题? 8910
如何快速搭建抽奖助手小程序(无需代码知识) 6039
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 7343
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 6671
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5998
如何解决渲染层网络错误Failed to load media? 17276
小程序找号找回 释放昵称? 3151
我的小程序广告主收入5301,实际进账4406,是怎么回事呀? 3014
删除部分微信用户个人数据的通知,怎么删除? 6260