当前位置: 首页 > 知识库问答 >
问题:

有没有任何Gradle-Sqlj插件可以像我们使用maven sqlj插件一样进行sqlj翻译?

武彭薄
2023-03-14

我已经将我的maven构建项目转换为gradle,现在我们在maven中使用的一个插件是SQLj插件。sqlj插件有额外的配置。sqlj)文件,然后将它们编译到。java和。服务特定目标目录。

我不确定在gradle版本中配置这个。你能帮助我如何在build.gradle文件中写这个配置吗?

我只包含了从mvcentral得到的与gradle等价的依赖线。

// https://mvnrepository.com/artifact/org.codehaus.mojo/sqlj-maven-plugin编译组:'org.codehaus'。“mojo”,名称:“sqlj maven-plugin”,版本:“1.3”

但它只是没有从特定文件位置编译新的. sqlj。我包含了apple yplugin:java和maven等行。

如果需要做任何额外的事情,请告诉我。

共有2个答案

宋运锋
2023-03-14

不幸的是,我看不到官方支持的sqlj ant任务,有人在这里发布了ant任务的源代码,所以有一种选择是使用Gradle的ant集成来包装它

看看Maven插件的源代码,似乎大部分逻辑都在调用< code > sqlj . tools . sqlj . status main()的translate方法中。我注意到Maven任务中的逻辑只更新已经改变的文件,这可以通过一个增量任务在Gradle中完成

希望这能帮助你开始

哈和惬
2023-03-14

您可以使用maven插件中的源代码作为开发Gradle任务的指南。这是一个简单的起点

class SqljTask extends DefaultTask {
    @Input
    String encoding
    @Input
    List<String> additionalArgs = []
    @InputDirectory
    File sqljDir
    @OutputDirectory
    File generatedJava
    @OutputDirectory
    File generatedResources

    @TaskAction
    void generate() {

        project.mkdir generatedJava
        project.mkdir generatedResources

        project.fileTree(sqljDir).visit { FileVisitDetails fvd ->
           if (!fvd.directory) {
               List<String> sqljArgs = []
               sqljArgs << "-dir=$generatedJava"
               sqljArgs << "-d=$generatedResources"
               sqljArgs << "-encoding=$encoding"
               sqljArgs << "-compile=false"
               sqljArgs << fvd.file.absolutePath
               sqljArgs.addAll(additionalArgs)
               int result = sqlj.tools.Sql.statusMain(sqljArgs as String[])
               if (result != 0) throw new RuntimeException("Can't translate $fvd.file ($returnCode)"   
           }            
        }
    }
}

build.gradle中的用法

apply plugin: 'java'

task sqlj(type: SqljTask) {
    encoding = 'UTF-8'
    additionalArgs = ['-status']
    sqljDir = file('src/main/sqlj')
    generatedJava = file("$buildDir/sqlj/java")
    generatedResources = file("$buildDir/sqlj/resources")
}

compileJava.dependsOn sqlj

sourceSets {
    main {
        java { 
            srcDir sqlj.generatedJava
        }
        resources {
            srcDir sqlj.generatedResources
        }
    }
}

注意:此任务仅在任务输入/输出自上次成功运行以来发生变化时才会运行。因此,如果自上次构建以来没有任何变化,则将被视为UP-TO-DATE

 类似资料:
  • 问题内容: 我正在研究将Heroku用于使用Redis的PHP应用程序。我看过各种Redis插件。例如,使用Redis To Go,您可以在PHP代码中使用$ _ENV [‘REDISTOGO_URL’]环境变量作为Redis Server的URL。 这些附加组件中的大多数都有自己的定价方案,我希望避免这种做法。我对heroku的工作方式有些困惑。有没有一种方法可以直接在没有插件的Dynos上安装

  • 我有一个名为expertion的maven插件,可以生成很好的API文档。我宁愿使用Gradle作为我的构建工具,但它看起来在这方面有所限制,或者可能我只是不知道如何使用它。 我想知道是否有可能在gradle中使用maven插件(发音)?我必须写一个蚂蚁脚本并调用它吗?到目前为止,我找不到发音的渐变示例,所以我猜它不受支持?

  • 我尝试使用jenkins管道将gradle工件上传到maven存储库。我关注了詹金斯的管道工作 如参考文件所述,应将构建工件部署到工件库。然而,在我的案例中没有部署构建工件。 我已经检查了并发现它是空的。 根据一些提示,我将以下代码放入我的: 然而,前面的没有帮助,仍然没有部署工件。 问题出在哪里?我错过了什么? 感谢您的任何意见。 编辑 我忘了为gradle deployer添加服务器设置。通过

  • 任何人都可以向我展示或指出一个不使用Spring引导 gradle 插件的Spring引导 gradle 项目。 我正在寻找一个类似springbootstarterwebhelloworld的例子,它不使用gradle插件。 我无法想象插件是一个需求,但搜索示例似乎都依赖于gradle插件,这在我的环境中不是一个选项,不,我也不能切换到maven。 理想情况下,gradle构建将通过添加以下内容

  • 我对编写java很陌生,我做了一些教程,这些教程很棒,但我不知道为什么它不能在游戏中工作。我已经尝试了一切,比如改变它,看看这么多不同的论坛。事件有两个类(Join and Leave Event)和main类。我已经确保检查导入它们和错误,没有让我从我所看到的地方。如果有人能帮上忙,那将是一种福气。 代码:-主类: yml:

  • 我正在为Atom编辑器开发一个包,它应该以12小时格式或24小时格式插入时间戳。在遵循飞行手册网站上的说明和查看insert timestamp回购协议的代码之间,我设法拼凑出了我认为应该能满足我需要的东西。问题是,当我执行这两个命令时,没有在编辑器中插入时间戳。我在这里发布了主代码;ide告诉我,由于某种原因,第30行出现了“意外缩进”()。我对Coffeescript没有太多经验,所以这可能是