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

用于从项目调用生成工具的分级任务

杨选
2023-03-14

我有一个使用gradle作为构建工具的项目。作为项目源代码的一部分,有一个工具可以生成此应用程序所需的配置文件。config generator工具是一个带有main方法的Java类,因此它可以从Java或命令行运行。

我想添加一个gradle任务,在配置生成器编译和jar'ed之后调用它。

  • 调用作为项目一部分的生成工具的推荐分级方式是什么?
  • 在我的gradle任务中,如何设置类路径,使配置生成器可以通过类路径上的项目依赖关系而不仅仅是gradle JVM的类路径来调用?

共有1个答案

陆畅
2023-03-14

这是我用来执行配置工具并将标准写入文件的gradle任务:

task generateConfig(type: JavaExec) {
    dependsOn jar
    main = 'com.example.ConfigGeneratorMain'
    classpath configurations.runtime, jar.archivePath
    doFirst {
        def outputFile = new File(project.buildDir, 'resources/generated/config.json')
        outputFile.mkdirs()
        outputFile.delete()
        outputFile.createNewFile()
        standardOutput = new FileOutputStream(outputFile)
    }
}
assemble.dependsOn generateConfig
 类似资料:
  • 我有一个非常基本的多项目分级设置,如下所示: 文件包括这两个子项目。根项目不应用java插件,但两个子项目都应用了。使用时,所有东西都按预期生成。 但是,据我所知,由于我没有在根项目中应用插件,因此它不应该有任务。 的输出显示任务。 但的输出只显示列有和。 所以我的问题是--在这个场景中到底执行了什么?gradle只是找到所有子项目中匹配供应模式的每一个任务吗?是否有关于此任务名称解析的特定规则?

  • 我正在进行带有多个Grails插件的Grails项目(Grails2.3.11)。一个主要的Grails项目,加上一些用户定义的Grails插件和核心Java项目,创建了一个完整的应用程序。到目前为止,这些项目都是使用Ant Builder构建的。最近升级的构建过程使用Gradle。 gradle过程的问题是,有些项目需要用JDK1.7构建,有些项目需要用JDK1.8构建。为了修复它,我将java

  • 我是一个Eclipse/STS用户/开发人员,现在正在尝试使用IntelliJ Idea(CE) 2020.2.(1,2,3) 对于一个基于Gradle的项目,如何进行Spring集成,当我打开IDE时,会发生以下情况 从上面来看,这就是问题所在,我不希望IDE自动启动来构建/重建项目。我只是需要,打开项目,仅此而已。 观察:例如,在Eclipse/STS中存在自动禁用构建的选项 我确实在网上做了

  • 根settings.gradle.kts如下所示: 在SoaProject的一个build.gradle.kts文件中,例如,我有以下依赖项: 导入/刷新gradle项目在Intellij中工作,并且依赖项被下载。但是当我尝试从子项目执行gradle任务时,我得到一个未解决的引用版本错误。 向西蒙致意

  • > gradle本身是一个构建工具,那么为什么在脚本中需要Android gradle工具呢? 安装的gradle版本(比如1.9)和Android gradle工具的版本(比如中的0.7.+)之间有什么关系。如果我将后者的版本更改为0.8.+,那么构建就会在“Could not find plugin appplugin”上失败。

  • 下面的Kotlin库的每一种用法都可以编译和使用,但是IntelliJ的autocomplete(也许还有其他的)不能解析引用。https://gitlab.com/7Hazard/altv-kotlin 我通过JitPack将其用作依赖项:https://jitpack.io/#com.gitlab.7Hazard/altv-kotlin JDK 11,等级6.3(包装纸) gradle 项目构