ant+maven+springboot----->windows部署到linuxjava
首先linux
安裝ant/mavenspring
配置ANT_HOME/MAVEN_HOMEapache
書寫build.xmlwindows
-------------------------------------------------------------------------------------------------------springboot
<?xml version="1.0" encoding="UTF-8"?> <project name="jdrx-bigdata-dataAnalyzer" default="redeploy-10.124" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <!--<path id="maven-ant-tasks.classpath" path="maven-ant-tasks-2.1.3.jar" />--> <property environment="env" /> <property name="project.root" value="${basedir}" /> <property name="warFileName" value="jdrx-bigdata-dataAnalyzer-cloudboot-1.0.0-fatjar.jar" /> <property name="jarDir" value="${basedir}/jdrx-bigdata-dataAnalyzer-cloudboot/target/${warFileName}" /> <property name="remoteDeployDir" value="/opt/bigdata-dataAnalyzer-app" /> <!--<path id="maven-ant-tasks.classpath" path="E:\jdrx\jdrx-bigdata-dataAnalyzer\maven-ant-tasks-2.1.3.jar" />--> <!--<typedef resource="org/apache/maven/artifact/ant/antlib.xml"--> <!--uri="urn:maven-artifact-ant"--> <!--classpathref="maven-ant-tasks.classpath" />--> <target name="run"> <echo message="執行"></echo> </target> <target name="maven-package"> <artifact:mvn pom="pom.xml" mavenversion="3.3.9" mavenhome="${env.MAVEN_HOME}" jvmargs="-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME" args="package -Dmaven.test.skip=true" fork="true"> </artifact:mvn> </target> <target name="redeploy" depends="maven-package"> <sshexec host="192.168.10.124" username="root" password="bigdata" trust="true" command="cd ${remoteDeployDir};sh shutdown.sh;"/> <sshexec host="192.168.10.124" username="root" password="bigdata" trust="true" command="cd ${remoteDeployDir};rm -rf ${warFileName};"/> <scp file="${jarDir}" todir="root@192.168.10.124:${remoteDeployDir}" password="bigdata" trust="true"/> <sshexec host="192.168.10.124" username="root" password="bigdata" trust="true" command="cd ${remoteDeployDir};sh startup.sh;"/> </target> </project>
運行:ant -buildfile build.xml redeploy
報錯:maven打包缺乏依賴。
把maven-ant-tasks-2.1.3.jar拷貝到ant的lib下面
再運行:ant -buildfile build.xml redeploy
報錯:缺乏ssh的jar包
把jsch-0.1.54.jar拷貝到ant的lib下面
再運行:ant -buildfile build.xml redeploy
成功!!
附錄:
shutdown.shapp
#!/bin/sh count=`ps -ef | grep jdrx-bigdata-dataAnalyzer-cloudboot-1.0.0-fatjar.jar | grep -v grep | awk '{print $2}' | wc -lcw |awk '{print $1}'`; pid=`ps -ef | grep jdrx-bigdata-dataAnalyzer-cloudboot-1.0.0-fatjar.jar | grep -v grep | awk '{print $2}' | head -1`; echo $count $pid; if [ $count -gt 0 ] then kill $pid else echo 'no such process' fissh
startup.shjvm
#!/bin/sh source /etc/profile cd /opt/bigdata-dataAnalyzer-app nohup java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=9095,suspend=n -jar jdrx-bigdata-dataAnalyzer-cloudboot-1.0.0-fatjar.jar >dataAnalyzer.log 2>&1 &socket