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

从项目中读取gradle路径

许照
2023-03-14

有没有办法从我的Gradle构建的groovy项目中访问Gradle groovy插件源集目录?我正在寻找默认的gradle src和resources目录。

我需要它来避免在项目中硬编码资源目录,但使用默认的Groovy插件资源目录(resources/main)。

共有2个答案

梁浩
2023-03-14

你能解释一下这个用例吗?在您的gradle构建中,您可以访问Gradles groovy插件引入的groovy源集目录,如下所示:

apply plugin:'groovy'

task printGroovySourceDirs << {
    sourceSets.main.groovy.srcDirs.each{
        println it.absolutePath
    }
}
卞经业
2023-03-14

您不应该将生产代码与测试源和测试资源混为一谈。我建议您在项目中使用以下src目录布局(groovy插件的默认布局):

  • “src/main/groovy”中的groovy生产代码
  • 在src/test/groovy*. groovy资源中用java或groovy编写的单元测试,用于在src/test/资源中测试您的DSL

现在您可以参考。测试中的groovy dsl测试文件

URL url = this.getClass().getResource("/testDsl.groovy");
File testDslFile = new File(url.getFile()); 
 类似资料:
  • 嗨,我有两个项目,文件如下: 项目1:构建。格拉德尔 项目2:构建。格拉德尔 当我从Project 1执行test1任务时,我得到以下错误: 正在运行任务测试2 失败:生成失败,出现异常。 > 错误:评估脚本时出现问题。建筑属性(无此类文件或目录) 尝试:使用--stacktrac选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。 建筑失败 总时间:5.779秒

  • 我有一个多项目的构建设置与gradle将包含多个android应用程序和库。 我想应用某些分级插件只对一些子项目。(比如android gradle插件只到android子项目)因此我在和插件声明中添加了类路径依赖项到两个android子项目: 和 。问题是gradle找不到android gradle插件: 错误:(%1,%1)评估项目“:ShopPr:Presentation”时出现问题。找不

  • 我有一个多模块java项目,我想在其中创建jar(bin、source、javadoc),但我很难从子项目配置中的子项目中获取变量。 这是我在根项目中的build.gradle文件: 这就是建筑。gradle文件子项目之一: 当我想运行构建脚本时,我得到了以下异常: 无法获取类型为org的对象的未知属性“mainClassName”。格雷德尔。应用程序编程接口。JAVA档案内部的默认舱单。 在子流

  • 我的Gradle项目的结构如下: 通常,要获取 文件夹的绝对路径,我只需在根 文件中执行即可。 但不幸的是,如果您从项目目录外部运行gradle脚本,例如执行如下操作,则此方法不起作用: 使用上一个命令,gradle 是在项目的父级中查找 目录,因为我从那里开始编写脚本。 是否有方法获得项目的绝对路径,即构建位置。gradle是,即使您从另一个目录启动脚本?或者有没有其他方法来获取脚本所在文件夹中

  • 我对Gradle是全新的,但在我的Build.Gradle中尝试了以下功能:

  • 我的看起来是: 并且我正在尝试使用以下命令访问连接字符串: 这将抛出一个空异常错误,我不确定原因。