我已经和Groovy和Grails一起工作了几个星期。
我只是遇到任何文件创建命令的问题,如下所示:
void validate(FileToValidate) {
try {
DefaultImmutableModuleIdentifierFactory moduleIdentifierFactory = new DefaultImmutableModuleIdentifierFactory()
def moduleDescriptorConverter = new IvyModuleDescriptorConverter(moduleIdentifierFactory)
def metadataFactory = new IvyMutableModuleMetadataFactory(moduleIdentifierFactory,null)
def repository = new DefaultExternalResourceRepository("repo", null, null, null, null, null,null)
def files = new java.io.File(FileToValidate)
URI uri = files.toURI()
def name = new ExternalResourceName(uri)
def parser = new IvyXmlModuleDescriptorParser(moduleDescriptorConverter, moduleIdentifierFactory,repository.resource(name ,true), metadataFactory)
DescriptorParseContext ivySettings = null //new DisconnectedDescriptorParseContext();
parser.parseMetaData(ivySettings, FileToValidate, true);
} catch (MetaDataParseException e) {
throw new GradleException("Invalid ivy descriptor file $FileToValidate", e);
}
}
我遇到以下错误:
Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.io.File(File)
答案 0 :(得分:0)
您正在将File
传递到void validate(FileToValidate) {
然后尝试在此处创建新文件
def files = new java.io.File(FileToValidate)
您不需要这样做...只需使用FileToValidate
作为旁注,建议对变量和参数使用小写的首字母,以免造成混淆,因此
void validate(fileToValidate) {