허드슨의 "쉘 실행"단계에서 실행해야하는 자동 배포 스크립트를 개발 중입니다. 현재 스크립트는 파라미터
을 읽습니다. 1. GroupId : ArctifactId : Version : Packaging (프로젝트
2. Servername : VahRoot : TcInstance허드슨 자동 배포 스크립트 도움말
허드슨 작업 구성에 지정된 pom.xml에서 G : A : V : P 매개 변수를 읽어야합니다. Hudson이 WORKSPACE env-var를 제공하더라도 현재 실행중인 pom 이름이 pom.xyz.xml 인 시나리오가있을 수 있으므로 작업 공간에서 pom.xml을 검색하기가 어려워집니다. A : : V : P의 PARAM을
#!/bin/bash
usage()
{
echo "Usage: $0 -s-r-g-a-v-p-i";
exit 1;
}
if [ $# -lt 14 ] ; then
usage;
fi
# ":" decides which options require an argument
while getopts s:r:g:a:v:p:i: opt
do
case "$opt" in
s) echo "hello $OPTARG";
serverName=$OPTARG;;
r) echo "hello $OPTARG";
vahroot=$OPTARG;;
g) echo "hello $OPTARG";
groupid=$OPTARG;;
a) echo "hello $OPTARG";
artifactid=$OPTARG;;
v) echo "hello $OPTARG";
version=$OPTARG;;
p)echo "hello $OPTARG";
packagetype=$OPTARG;;
i)echo "hello $OPTARG";
tcinstance=$OPTARG;;
\?) usage;;
esac
done
cd $vahroot
echo "Now in $vahroot"
source $vahroot/admin/env/vahenv.sh
tcmgr.sh restart -t all
echo "$?"
if [ $? -ne 0 ]
then
echo "Exception occured"
exit 1;
fi
version_chk="SNAPSHOT"
if [[ $version =~ $version_chk ]]
then
echo "groupid is $groupid artifactid $artifactid version $version packagetype $packagetype tcinstance $tcinstance"
tcmgr.sh deploy -w nexus://snapshots:$groupid:$artifactid:$version:$packagetype -i $tcinstance
exit 0;
else
echo "groupid is $groupid artifactid $artifactid version $version packagetype $packagetype tcinstance $tcinstance"
tcmgr.sh deploy -w nexus://releases:$groupid:$artifactid:$version:$packagetype -i $tcinstance
exit 0;
fi
나는 내가 G를 입력하도록 요청할 필요가 없습니다 있도록 나에게 작업에 지정된 치어 위치를 제공하기 위해 허드슨 설정을 읽어와 도움이 필요합니다.
POm 및 필요한 정보를 읽거나 작업을 수행하거나 Hudson Plugin을 작성하는 자바 프로그램을 작성하지 않으시겠습니까? – khmarbaise