Je pense que ce code va vous aider. Créer sur runDeployment des tâches gradle et exécuter la tâche:
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());
}
}
}
Ici, je suis essayer de déployer xyz.war à jboss serveur. Je garde le serveur et l'authentification dans le fichier deployments.properties. Nous allons obtenir le warPath et nous exécutons une commande CLI dans ce code. Cela va déployer la guerre sur le serveur distant avec serverIP et serverPort.
Ce code a fonctionné pour moi.