java - 如何在我的 ssh 服务器上自动安装新的 jar 项目?

标签 java ssh jar ftp

我开始在 Spring Boot 中开发我的第一个 Rest API 项目。我创建了一些不太高级的程序,但可以运行。该项目有一个插件,可以帮助我创建新的 .jar 文件,该文件可以通过 SSH 客户端安装在我的 VPS 服务器上。在底部,我展示了在服务器上正确安装 .jar 文件所必须采取的图表。

  1. 在测试所有内容并获得正确结果后,我必须通过输入“mvn clean”来清除项目中现有的 .jar。
  2. 稍后我必须通过命令“mvn package”创建新的修改后的.jar包
  3. 将文件从本地文件移动到 VPS 服务器中的远程文件,例如在 WinSCP/FileZilla FTP 客户端中。
  4. 之后必须登录SSH客户端并通过“java -jar”api.jar”安装

正如你所见,这需要很多时间。是否存在任何程序或我可以编程使其自动实现的程序?我听说过一些关于 Jenkins 的事? 你有什么建议可以节省我的时间吗:D?

非常感谢和抱歉我的英语,我知道它不够好,但我尽力了:D 西蒙娜

最佳答案

是的,可以使用jenkins来实现。 首先将代码提交到 git 存储库。 一旦你的系统上安装了 Jenkins 。 从 Jenkins 仪表板中选择新项目。 输入该商品的名称 然后选择类型,您应该选择“管道”。 在下一页中,选择定义部分中的高级项目选项,按照下面共享的示例代码创建您自己的管道脚本。

有关管道的更多信息,请访问Jenkins pipeline getting started

#!/usr/bin/env groovy

节点('主'){

        try {
        def mvnHome
        def projectDirectoryPath
        def serverPath = '/app/projects/myapp/services/'
        def jarName = 'myapp-0.0.1-SNAPSHOT.jar'

        stage('checkout') {
            checkout([$class: 'GitSCM', branches: [[name: '*/YOURGITBRANCH']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'YOURGITCREDENTIALID', url: 'YOURGITURL']]])
            mvnHome = '/usr/apache-maven-3.1.1'
            projectDirectoryPath = '/app/jenkins-slave/workspace/myapp_services'
        }

        stage('clean') {
            sh "cd '${projectDirectoryPath}' && '${mvnHome}/bin/mvn' clean"
        }

        stage('build') {
            sh "cd '${projectDirectoryPath}' && '${mvnHome}/bin/mvn' package"
            archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
        }

        stage('deploy') {
            sshagent(['YOURAGENTID']) {
                   echo "the application is deploying ${jarName}"
                   sh "ssh -o StrictHostKeyChecking=no USER@YOURHOST ${serverPath}stop.sh"
                   echo "the ${jarName} is stopped"
                   sh "scp ${projectDirectoryPath}/target/${jarName}  USER@YOURHOST:${serverPath}${jarName}"
                   echo "the ${jarName} is transferred successfuly"
                   sh "ssh -o StrictHostKeyChecking=no USER@YOURHOST sh ${serverPath}start_silent.sh"
                   echo "the ${jarName} is started successfuly"
            }
        }

    }catch(e){
       currentBuild.result="FAILED"
       //notifyfailed()
     throw e 
}

}

关于java - 如何在我的 ssh 服务器上自动安装新的 jar 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60377006/

相关文章:

java - 检索正则表达式匹配的模式

通过 SSH 的 Rubymine 远程 Ruby 解释器无法正常工作

java - 为什么我无法从脚本执行我的 java 项目?

php - 我需要在我的服务器上运行我作为任务编写的 PHP 脚本

hadoop - FNF:无法执行ssh-base.sh

java - 如何管理消费应用程序的 JAR 依赖项

java - mac、java 1.5 : javax. 邮件无法识别为 jar 文件

java - 如何在点击时翻转 android 对话框?

java - 拒绝向我的 JAX-RS 服务提供服务

java - 从 jar 获取退出代码的问题