当使用GroovyEventPlugin时,JavaGroovy不会将闭包转换为BiPredicate
我在以下groovy代码中遇到了问题(我第一次尝试没有显式的闭包参数类型):
Files.find(path, 4, { Path target, BasicFileAttributes attr ->
def file = target.fileName
file.toString().endsWith(".xml") && !file.toString().startsWith("_")
},
new FileVisitOption[0]
).collect(Collectors.toList())
Groovy编译器(2.4.15)出现以下故障:
No signature of method: static java.nio.file.Files.find() is applicable for argument types: (sun.nio.fs.UnixPath, java.lang.Integer, upgrade_bundles$_items_closure3, [Ljava.nio.file.FileVisitOption;) values: [/home/kkrason/dev/tpc2/zerocracy/farm/src/test/resources/com/zerocracy/bundles/understands_bug_label, ...]
Possible solutions: find(), find(java.nio.file.Path, int, java.util.function.BiPredicate, [Ljava.nio.file.FileVisitOption;), findAll(), any(), find(groovy.lang.Closure), wait()
为什么编译器不将闭包转换为BiPredicate
?
只有一个find
方法,所以我无法理解为什么会有冲突
编辑:上面的代码是使用maven执行的:
组织。科德豪斯。格曼 groovy maven插件 2.1 升级包 过程测试资源 处决 编写 ${project.basedir}/upgrade\u bundle。棒极了
在项目依赖关系中,我有:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.15</version>
</dependency>
我试图将此依赖项添加到groovy maven插件中,但后来我得到:
[ERROR] Failed to execute goal org.codehaus.gmaven:groovy-maven-plugin:2.1:execute (upgrade-bundles) on project farm: Execution upgrade-bundles of goal org.codehaus.gmaven:groovy-maven-plugin:2.1:execute failed: A required class was missing while executing org.codehaus.gmaven:groovy-maven-plugin:2.1:execute: net/sf/saxon/event/Receiver
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.codehaus.gmaven:groovy-maven-plugin:2.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/groovy-maven-plugin/2.1/groovy-maven-plugin-2.1.jar
[ERROR] urls[1] = file:/home/kkrason/.m2/repository/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.jar
[ERROR] urls[2] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-slf4j/1.8/gossip-slf4j-1.8.jar
[ERROR] urls[3] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-core/1.8/gossip-core-1.8.jar
[ERROR] urls[4] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-bootstrap/1.8/gossip-bootstrap-1.8.jar
[ERROR] urls[5] = file:/home/kkrason/.m2/repository/com/google/guava/guava/14.0.1/guava-14.0.1.jar
[ERROR] urls[6] = file:/home/kkrason/.m2/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[7] = file:/home/kkrason/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.16/plexus-interpolation-1.16.jar
[ERROR] urls[8] = file:/home/kkrason/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[9] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/gmaven-adapter-api/2.1/gmaven-adapter-api-2.1.jar
[ERROR] urls[10] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/gmaven-adapter-impl/2.1/gmaven-adapter-impl-2.1.jar
[ERROR] urls[11] = file:/home/kkrason/.m2/repository/org/apache/ant/ant/1.8.4/ant-1.8.4.jar
[ERROR] urls[12] = file:/home/kkrason/.m2/repository/org/apache/ant/ant-launcher/1.8.4/ant-launcher-1.8.4.jar
[ERROR] urls[13] = file:/home/kkrason/.m2/repository/jline/jline/1.0/jline-1.0.jar
[ERROR] urls[14] = file:/home/kkrason/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[project>com.zerocracy:farm:0.30.7, parent: ClassRealm[maven.api, parent: null]]]
共 (0) 个答案