0
如何使用以前發佈到maven回購站的gradle將戰爭部署到其中一個Web服務器上? Gradle的貨物插件是否有利於它?我可以有多個遠程環境(DEV/TEST/PROD)嗎?我一直在使用貨物進行遠程部署,但是這些工作始終是在生成戰爭結束時完成的,並且只能在一個「遠程」環境中進行。從回購部署戰爭到遠程服務器
任何輸入都會有幫助。
如何使用以前發佈到maven回購站的gradle將戰爭部署到其中一個Web服務器上? Gradle的貨物插件是否有利於它?我可以有多個遠程環境(DEV/TEST/PROD)嗎?我一直在使用貨物進行遠程部署,但是這些工作始終是在生成戰爭結束時完成的,並且只能在一個「遠程」環境中進行。從回購部署戰爭到遠程服務器
任何輸入都會有幫助。
我認爲這段代碼會幫助你。在創建的gradle任務runDeployment和運行任務:
task runDeployment {
description 'deploy the war to the server'
doLast {
String serverIP;
String serverPort;
String userName;
String password;
String jbossPath;
Properties prop = new Properties();
InputStream input;
try {
input = new FileInputStream("deployment.properties");
// load a properties file
prop.load(input);
// get the property value setting in the variables.
serverIP = prop.getProperty("serverIP");
serverPort = prop.getProperty("serverPort");
userName = prop.getProperty("userName");
password = prop.getProperty("password");
jbossPath = prop.getProperty("jbossPath");
} catch (IOException ex) {
logger.info(ex.printStackTrace())
throw new GradleException("Unable to load deployment.properties file. Exiting....")
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
}
}
}
File file = new File("xyz/build/libs"); //path of the war location
String warPath = file.getAbsolutePath();
String[] comm = [jbossPath+"jboss-cli.bat","--connect","controller="+serverIP+":"+serverPort,"-u="+userName,"-p="+password, "--command=\"deploy","--force","xyz.war"];
ProcessBuilder pb = new ProcessBuilder();
pb.command(comm);
pb.directory(new File(warPath));
pb.inheritIO();
Process p = pb.start();
try {
p.waitFor();
}
catch (InterruptedException e) {
logger.info(e.printStackTrace());
}
}
}
在這裏,我嘗試部署xyz.war到JBoss服務器。 我在deployments.properties文件中保留服務器和身份驗證。 我們將獲得warPath,並在此代碼中運行CLI命令。這將使用serverIP和serverPort將戰爭部署到遠程服務器。
此代碼適用於我。