maven命令列打包並上傳linux
阿新 • • 發佈:2019-01-22
package com.kk.demo.exe; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.Properties; import org.junit.Test; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpException; import ch.ethz.ssh2.StreamGobbler; /** * @author kk * */ public class ExecuteCMD { public static void main(String[] args) { ExecuteCMD c = new ExecuteCMD(); c.exeMaven(); c.connectLiux(); } /** * 執行maven打包命令 * cd到需要打包專案的pom.xml檔案下執行: * mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true * Clean跳過測試直接install */ @Test public void exeMaven(){ String CMD = "cmd /c d: & cd D:\\MyWorkspace\\dlm\\dlm-admin & mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true"; try { Process process = Runtime.getRuntime().exec(CMD); BufferedReader br = new BufferedReader( new InputStreamReader(process.getInputStream(),"GBK")); String line = ""; while((line = br.readLine()) != null){ System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } /** * 連線linux * 執行 上傳war包 ,部署, 並檢視tomcat輸出 */ @Test public void connectLiux(){ try { //連線 JSch jsch = new JSch(); Session session = jsch.getSession("使用者名稱","IP地址",埠); session.setPassword("密碼"); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.setTimeout(3000 * 60 *6 ); session.connect(); //上傳檔案 String scr = "C:\\Users\\VULCAN\\Desktop\\00000.txt"; String dst = "/javadata/XAJAVA/tomcat/document/war/00000.txt"; ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp"); channelSftp.connect(); //上傳 channelSftp.put(scr, dst, ChannelSftp.OVERWRITE); channelSftp.quit(); StringBuilder CMD = new StringBuilder(); //跳轉目錄 CMD.append("cd /javadata/XAJAVA/tomcat/document/war &&"); //執行shell指令碼 //CMD.append(" sh dlm.sh &&"); CMD.append(" cd /javadata/XAJAVA/tomcat/dlm-tomcat/logs &&"); //檢視tomcat輸出 CMD.append(" tail -f catalina.out"); //執行命令 ChannelExec channelExec = (ChannelExec) session.openChannel("exec"); channelExec.setCommand(CMD.toString()); channelExec.setInputStream(null); channelExec.setErrStream(System.err); channelExec.connect(); InputStream in = channelExec.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in,Charset.forName("UTF-8"))); //輸出返回 String buf = ""; while((buf = reader.readLine()) != null){ System.out.println(buf); } //關閉 reader.close(); channelExec.disconnect(); } catch (JSchException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (SftpException e) { e.printStackTrace(); } } } 依賴jar <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </dependency>