2012-01-28 28 views
7

Tôi muốn thanh toán svn bằng cách sử dụng gradle. Theo số example Tôi đã viết điều nàyThanh toán svn bằng gradle

task dwnSnark << { 
    ant.path(id: 'svnant') { 
     ant.pathelement(location: 'antlib/svnClientAdapter.jar') 
     ant.pathelement(location: 'antlib/svnant.jar') 
     ant.pathelement(location: 'antlib/svnkit.jar') 
    } 
    ant.taskdef(resource: 'org/tigris/subversion/svnant/svnantlib.xml', classpathref: 'svnant') 
    mkdir('destpath') 
    ant.svn(javahl: 'false', svnkit: 'true', username: 'user', password: 'pass', failonerror: 'false') {//this is actually line: 37 from stacktrace 
     ant.checkout(url: 'svn://code.threerings.net/snark/trunk', destPath: 'destpath') 
     ant.update(dir: 'destpath') 
    } 
} 

Nhưng khi tôi thực hiện nó. Nó ném ngoại lệ.

gradle dwnSnark --stacktrace 
:dwnSnark 
[ant:taskdef] Could not load definitions from resource org/tigris/subversion/svnant/svnantlib.xml. It could not be found. 

FAILURE: Build failed with an exception. 

* Where: 
Build file 'D:\prog\wint2012\build.gradle' line: 37 

* What went wrong: 
Execution failed for task ':dwnSnark'. 
Cause: Problem: failed to create task or type svn 
Cause: The name is undefined. 
Action: Check the spelling. 
Action: Check that any custom tasks/types have been declared. 
Action: Check that any <presetdef>/<macrodef> declarations have taken place. 


* Try: 
Run with --info or --debug option to get more log output. 

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':dwnSnark'. 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:71) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:48) 
     at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34) 
     at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34) 
     at org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200) 
     at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172) 
     at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198) 
     at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111) 
     at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83) 
     at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32) 
     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55) 
     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57) 
     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41) 
     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 
     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52) 
     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42) 
     at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:243) 
     at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192) 
     at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177) 
     at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83) 
     at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 
     at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) 
     at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) 
     at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31) 
     at org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111) 
     at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126) 
     at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109) 
     at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103) 
     at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79) 
     at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 
     at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) 
     at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) 
     at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:152) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:108) 
     at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:76) 
     at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:42) 
     at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:28) 
     at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:32) 
     at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:21) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:238) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:222) 
     at org.gradle.launcher.Main.doAction(Main.java:48) 
     at org.gradle.launcher.exec.EntryPoint$1.execute(EntryPoint.java:53) 
     at org.gradle.launcher.exec.EntryPoint$1.execute(EntryPoint.java:51) 
     at org.gradle.launcher.exec.Execution.execute(Execution.java:28) 
     at org.gradle.launcher.exec.EntryPoint.run(EntryPoint.java:39) 
     at org.gradle.launcher.Main.main(Main.java:39) 
     at org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:51) 
     at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:33) 
     at org.gradle.launcher.GradleMain.main(GradleMain.java:24) 
Caused by: : Problem: failed to create task or type svn 
Cause: The name is undefined. 
Action: Check the spelling. 
Action: Check that any custom tasks/types have been declared. 
Action: Check that any <presetdef>/<macrodef> declarations have taken place. 

     at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:487) 
     at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:419) 
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163) 
     at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:71) 
     at org.gradle.api.internal.project.ant.BasicAntBuilder.doInvokeMethod(BasicAntBuilder.java:86) 
     at org.gradle.api.internal.project.DefaultAntBuilder.super$3$invokeMethod(DefaultAntBuilder.groovy) 
     at org.gradle.api.internal.project.DefaultAntBuilder.invokeMethod(DefaultAntBuilder.groovy:37) 
     at build_7tvcf1h4gb2jnh1u2q10f79imq$_run_closure4.doCall(D:\prog\wint2012\JTor\build.gradle:37) 
     at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:457) 
     at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:445) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:63) 
     ... 54 more 


BUILD FAILED 

Total time: 6.354 secs 

Tôi sai ở đâu?

+0

Xem: http://stackoverflow.com/questions/2400893/how-to-checkout-from-svn-with-an-ant-task - có thể là bạn đang thiếu javahl.jar trên classpath. –

+0

@martin clayton, tôi đã thêm 'svnjavahl.jar' vào classpath của mình, nhưng nó không giúp ích gì. –

Trả lời

4

sửa đổi chút ít này dường như làm cho nó hoạt động. Tôi đã tải xuống và giải nén svntask mới nhất vào dự án và khai báo classpath trực tiếp cho taskdef thay vì khai báo đường dẫn riêng biệt.

task dwnSnark << { 
    ant.taskdef(resource: 'org/tigris/subversion/svnant/svnantlib.xml') { 
     classpath { 
      fileset(dir: 'svnant-1.3.1/lib', includes: '*.jar') 
     } 
    } 
    mkdir('destpath') 
    ant.svn(javahl: 'false', svnkit: 'true', username: 'user', password: 'pass', failonerror: 'false') { 
     ant.checkout(url: 'https://svn.java.net/svn/groovychart~svn', destPath: 'destpath') 
     ant.update(dir: 'destpath') 
    } 
} 
1

Hi Tôi đã nhận như sau để chạy, nhưng không có vẻ để có được kiểm tra

trong cùng thư mục của gradle.build Tôi đã thêm một thư mục lib với lọ cần thiết

ant.path(id: 'svnant') { 
    ant.pathelement(location: 'antlib/svnClientAdapter.jar') 
    ant.pathelement(location: 'antlib/svnant.jar') 
    ant.pathelement(location: 'antlib/ganymed.jar') 
    ant.pathelement(location: 'antlib/jna.jar') 
    ant.pathelement(location: 'antlib/svnjavahl.jar') 
} 
Các vấn đề liên quan