2009-11-14 3 views
2

cruisecontrol 스크립트를 사용하는 데 문제가 있습니다. 내 프로젝트의 파일에 grep을 호출하여 몇 가지 전처리 기 정의를 검색하고 나중에 사용할 수있는 목록에 넣고 싶습니다. 이 조각은Cruisecontrol은 개미가 괜찮은 행을 구문 분석하는 데 문제가 있습니다

오류가 반환
<target name="generate_list"> 
    <echo>calling grep</echo> 
    <exec dir="${basedir}/src/" executable="grep" failonerror="true"> 
    <arg line="-R --include=*.{cpp,h} -l -P &quot;ARG1|ARG2|ARG3&quot; . &gt; touchlist" /> 
    </exec> 
    <echo>contents of touchlist is</echo> 
    <exec dir="${basedir}/src/" executable="cat" failonerror="true"> 
    <arg line="touchlist" /> 
    </exec> 
</target> 

내가 여기 총 손실에있어

<stacktrace> 
    /opt/cruisecontrol-2.8.1/build-foo.xml:195: exec returned: 1 
    at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:636) 
    at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:662) 
    at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:487) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) 
    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.Target.execute(Target.java:357) 
    at org.apache.tools.ant.Target.performTasks(Target.java:385) 
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) 
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298) 
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181) 
    at org.apache.tools.ant.Main.runBuild(Main.java:698) 
    at org.apache.tools.ant.Main.startAnt(Main.java:199) 
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) 
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) 
</stacktrace> 

입니다 ... 내가 개미 빌드 파일로 던져 때 잘 작동하지만 CruiseControl을 사용할 때 오류를 반환 . 점진적으로 변화시키고 어떤 일이 벌어 지는지는 제쳐두고 어떻게 디버깅 할 수 있는지조차 알지 못합니다.

답변

1

또 다른 아이디어 (검색 후)는 <arg line...을 사용하지 않는 것이 좋습니다. 여러 <arg value... 정의로 바꿉니다.

1

명령 줄을 별도의 셸 스크립트로 추출하여 스크립트 만 호출하고 스크립트에서 grep을 대신 호출하도록 제안합니다.

0

어쩌면 그것은 다른 basedirs.

대상의 첫 번째 줄에 <echoproperties/>을 놓고 ant-run 및 cruisecontrol 실행의 기본 출력에 대한 출력을 비교하십시오.

관련 문제