gradle:如何调用运行时定义的多个包含的ant.javac?

问题描述 投票:0回答:1

for some reasons我没有使用java插件进行gradle,但是我调用了ant.javacdynamically。如何基于列表构建动态javac include()

例如:

def srcToCompile=["**/File1.java","**/File2.java","**/FileN.java"];
(...)
ant.javac(
    destdir: tmpDir,
    srcdir: srcDir
    includeantruntime:false,
    failonerror: true,
    fork: true,
    classpath : classpath1,
    debug: true
    )  {
        include(name: srcToCompile) //<< DOESN'T WORK, I also tested srcToCompile.join(":")
    }

谢谢。

编辑:'不工作',我的意思是ant.javac不解释List或冒号分隔字符串:没有找到任何来源,也没有编译。 ant.javac期待类似的东西

include(name:"**/File1.java")
include(name:"**/File2.java")
include(name:"**/FileN.java")

但是我想在调用gradle时生成这个include列表。

gradle groovy ant javac
1个回答
2
投票

如果你看一个ant javac docs,你会看到包括并包含两个接受一个字符串,但你试图传递一个集合

例如:

<javac destdir="${build}"
       classpath="xyz.jar"
       debug="on">
  <src path="${src}"/>
  <src path="${src2}"/>
  <include name="mypackage/p1/**"/>
  <include name="mypackage/p2/**"/>
  <exclude name="mypackage/p1/testpackage/**"/>
</javac>

<javac srcdir="${src}"
       destdir="${build}"
       includes="mypackage/p1/**,mypackage/p2/**"
       excludes="mypackage/p1/testpackage/**"
       classpath="xyz.jar"
       debug="on"/>

在Gradle中,这将是

ant.javac(includes: srcToCompile.join(','), ...)

要么

ant.javac(
   ... 
) {
   srcToCompile.each {
      include(name: it) 
   } 
} 
© www.soinside.com 2019 - 2024. All rights reserved.