【问题标题】:generated source code in ant to gradle migration在 ant 中生成源代码到 gradle 迁移
【发布时间】:2015-12-22 02:27:30
【问题描述】:

我正在将 ant-build 中的 java 项目 迁移到 gradle build。我被源代码困住了。

我已经在另一个项目中成功地将 WSDL 转换为 java。但在这种情况下,我不知道。

蚂蚁代码来了

<taskdef name="codegen" classname="com.company.container.ant.GeneratorTask" 
         classpathref="codegen.path" loaderref="classes"/>
<codegen toDir="${dir.generated}" metaDestDir="${dir.compile}" 
         configFile="${dir.compile}/container/local_services.xml">
<fileset dir=".">
    <include name="src/java/com/**/container/*Impl.java"/>
</fileset>
</codegen>
<echo message="Generate biz service interfaces complete."/>
        </target>
<target name="compile.codegen" description="Compile generated code.">
<javac srcdir="${dir.generated}" destdir="${dir.compile}" 
       deprecation="${build.deprecation}" debug="${build.debug}">
    <classpath>
        <path refid="classpath.build"/>
    </classpath>
</javac>
<echo message="Done compiling generated code."/>
</target>

有人知道吗?

【问题讨论】:

  • 请尝试更具体。您不完全了解哪一部分?到目前为止,您到底尝试了什么?
  • 如何将其转换为 gradle ?我什至实际上不明白这是如何工作的!此代码(在 ant 中)生成新的 java 文件。
  • 它似乎使用了一些自定义代码生成器,不像 WSDL 生成器。所以,你必须为它提供行为和输入/输出,或者?作为临时解决方案,只需将此 ant 任务导入 gradle 构建脚本即可。

标签: java ant gradle build generated-code


【解决方案1】:

是的!我已经做了。这行得通。

task generateTheSourceFiles {
    doLast {
        generatedSrcDir.exists() || generatedSrcDir.mkdirs()
        ant.taskdef(name: 'generateJavaCode', classname: 'com.company.container.ant.GeneratorTask', classpath: configurations.generateJavaCode.asPath, loaderref: 'classes')
        ant.taskdef(name: 'attributeCompiler', classname: 'org.apache.commons.attributes.compiler.AttributeCompiler',
                classpath: configurations.attributeCompiler.asPath, loaderref: 'classes')
        ant.generateJavaCode(toDir: generatedSrcDir, metaDestDir: 'build/classes', configFile: 'src/main/resources/container/local_services.xml') {
            fileset(dir: 'src/main/java', includes: 'com/**/container/**/*Impl.java', excludes: 'com/company/web/container/*Impl.java')
        }
        ant.attributeCompiler(destDir: generatedSrcDir) {
            fileset(dir: 'src/main/java', includes: 'com/**/container/**/*.java')
        }
    }
}

【讨论】:

    猜你喜欢
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 2020-03-08
    • 2020-07-27
    • 2011-01-21
    • 2016-09-23
    相关资源
    最近更新 更多