我们希望Teamcity在每次提交到subversion时构建我们的解决方案。 在文档之后,我们将创建一个.sh脚本: -
SERVER=https://buildserver-url
USER=buildserver-user
PASS="<password>"
LOCATOR=$1
# The following is one-line:
(sleep 10; curl --user $USER:$PASS -X POST "$SERVER/app/rest/vcs-root-instances/commitHookNotification?locator=$LOCATOR" -o /dev/null) >/dev/null 2>&1 <&1 &
exit 0
Subversion正在Windows环境中运行,因此.sh文件将失败。 我们正在尝试将其转换为.bat文件,我们有: -
set SERVER=https://buildserver-url
set USER=buildserver
set PASS=password
LOCATOR=%1%
(timeout 10; curl --user %USER%:%PASS% -X POST "%SERVER%/app/rest/vcs-root-instances/commitHookNotification?locator=%LOCATOR%" -o /dev/null) >/dev/null 2>%1% <%1% &
exit 0
但是,尝试使用
执行时仍然失败"The system cannot find the path specified"
似乎我们可能正确地转换了这个?
答案 0 :(得分:1)
您在curl
/ timeout.exe
变量中出现的位置(例如$PATH
和%PATH%
)引用的程序(例如curl
和timeout.exe
)是什么?你引用的任何其他文件怎么样 - 你是指定完整路径
附注:您是否在Windows服务器上安装了/dev/null
和NUL
?
此外,Windows上不存在 {
"data":[
"name": "name1",
"surname": "surname1",
"id": "22",
"motivations": []
},
"1:"{
"name": "name2",
"surname": "surname2",
"id": "23",
"motivations": []
},
{
"name": "name3",
"surname": "surname3",
"id": "24",
"motivations": []
}],
"sign": "9e46b7d6b140b",
"last_call": 1446
}
;您需要重定向到class Person{
@DatabaseField
String name;
@DatabaseField
String surname;
@DatabaseField(id = true)
int id;
@DatabaseField(dataType = DataType.SERIALIZABLE)
List<Motivation> motivations
}
public interface ApiService {
public static final String TEST_SIGN = "test_KP1FE3R1";
@GET("api/person/{id}")
Call<JsonObject>getPerson(@Path("id") String id, @QueryMap Map<String, String> options);
}
。您不能只是更改文件扩展名和一些语法,并希望bash脚本可以在Windows上运行。
如果我在你的脚下,我会完全跳过批处理,并将脚本写成现代的,并且像Powershell一样理智。