我想使用Gradle任务为 Java

项目生成Java类,类似于Android插件如何BuildConfig.java使用buildConfig 表示法创建,例如:

android {

...

buildTypes {

final String PROVIDER_AUTHORITY_RELEASE = "public static final String PROVIDER_AUTHORITY = \"com.example.project.ContentProvider\";\n";

final String PROVIDER_AUTHORITY_DEBUG = "public static final String PROVIDER_AUTHORITY = \"com.example.project.debug.ContentProvider\";\n";

debug {

...

buildConfig PROVIDER_AUTHORITY_DEBUG

}

release {

...

buildConfig PROVIDER_AUTHORITY_RELEASE

}

}

}

用例是我正在开发一个开源应用程序,该应用程序需要使用API​​密钥和机密。我拥有gradle.properties不致力于我的VCS 的密钥和秘密。

到目前为止,我有这个:

task generateSources {

outputDir = file("$buildDir/../src/main/java/uk/co/ataulm/mijur/core/api")

outputs.dir outputDir

doFirst {

outputDir.exists() || outputDir.mkdirs()

String API_CLIENT_ID = "public static final String API_CLIENT_ID = \"\";\n"

String API_CLIENT_SECRET = "public static final String API_CLIENT_SECRET = \"\";\n"

try {

API_CLIENT_ID = "public static final String API_CLIENT_ID = \"" + apiClientId + "\";\n"

API_CLIENT_SECRET = "public static final String API_CLIENT_SECRET = \"" + apiClientSecret + "\";\n"

} catch (Exception e) {

println "gradle.properties not set with apiClientId and/or apiClientSecret. API calls will not work.";

}

new File(outputDir, "ApiConstants.java").write("package uk.co.ataulm.mijur.core.api;\n\npublic class ApiConstants {\n" + " " + API_CLIENT_ID + " " + API_CLIENT_SECRET + "}")

}

}

compileJava.source generateSources.outputs.files, sourceSets.main.java

并且有效-

在指定位置生成该文件。但是它非常脆弱。明确命名软件包很容易出错。只要文件可以在其他软件包中生成(例如,在的根目录src/main/java),只要能够使用Java在Java中进行访问,我都会很高兴MyGeneratedFile.MyConstant。

欣赏任何想法(即使它们走在不同的轨道上)。

gradle生成java文件_使用Gradle for Java插件生成Java类相关推荐

  1. linux系统中自动生成snap文件_在Linux操作系统下自动生成Makefile的方法

    在Linux操作系统下进行开发,编写Makefile似乎是不可缺少的事情.但是对于一个比较大的工程,编写一个符合规范的Makefile并非易事.而且由于Makefile的各种显式,隐式规则,加之平时并 ...

  2. 生成drl文件_我如何通过编程方式生成.drl文件。任何示例对我都将有所帮助

    我搜索了很多站点,但找不到有关.drl文件生成的任何特定相关示例. .drl文件生成方面的文档也不值得. 解决方案 //- ---- package部分------- PackageDescr pkg ...

  3. 生成step文件_利用opencv给彦女王生成一副蒙太奇画像

    大家好呀,前两天烈阳天道1上映了,不知道大家看没看呢,里面还有一小段彦穿越虫洞与猴哥相遇的画面,彦女王啊啊啊~~ 所以我去网上爬了二百来张我大学的风景画,然后找了以前存的彦女王的图片,生成了一幅蒙太奇 ...

  4. gulp不生成打包文件_命令行输入gulp 无法生成压缩文件

    gulpfile.js: var gulp = require('gulp'); // gulp.com/plugins/ var rev = require('gulp-rev'); // 添加版本 ...

  5. 服务器如何运行java文件_在linux服务器上运行java文件

    1.  在windows环境下编写java类,如java类是Test类. 2.  将该Test类上传到linux服务器上,命令如下: mapred@10:/bwdata168_2/hyg$rz  -b ...

  6. 用C#生成Excel文件的方法和Excel.dll组件生成的方法

    NET Framework1.0和1.1 都没有实现OleContainer组件.查遍MSDN,最后得了一个提示:可以使用IEBrowser来模拟OleContainer.这绝对是一个超重的实现,不过 ...

  7. Java生成PDF文件_自用

    Java生成PDF文件 一.前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库.废话不多说,进入正题. 二.iText简介 ...

  8. java 生成dump文件_程序自动生成Dump文件

    前言:通过drwtsn32.NTSD.CDB等调试工具生成Dump文件,drwtsn32存在的缺点虽然NTSD.CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD.CDB等调试工具.了解了m ...

  9. 这是预编译工具生成的文件_组件化架构 10.编译优化

    软件研发中,耗费最多时间的并不是编写代码,而是代码编译和代码不断调试的过程 软件试错时间 Android基础编译流程 编译构建的四个步骤: 代码编译:将源代码,R文件,AIDL生成的文件等 编译成.c ...

最新文章

  1. Android源码下载资料
  2. Python2.7连接MySQL5.7 附demo
  3. python绘制动态模拟图-如何利用Python动态模拟太阳系运转
  4. 医失眠灵验方--五味子50g 茯神50g 合欢花15g 法半夏15g
  5. 天梯赛 L1-039 古风排版 (20 分)
  6. 【常用】加载配置文件管理资源路径
  7. sap采购订单更改记录_SAP系统如何实现减税:增值税16%
  8. Xshell 基本使用方式 (1) -- 使用Xshell 连接 VMware下的linux系统
  9. Tablet UI模式: 中心舞台
  10. Fescar TC-beigin流程
  11. MySql Workbench常用快捷键修改MySqlWorkBench快捷键
  12. java中如何获取当前文件的物理路径?
  13. HTTP协议的请求协议(个人笔记看不懂的地方可以和我交流)
  14. python安装pika模块rabbitmq
  15. 什么是依赖,什么是抽象
  16. MapXtreme 随笔记录1
  17. 从GDPR和个保法看,为什么要做数据合规?
  18. 秦纪三 二世皇帝下二年(癸已、前208)——摘要
  19. 【067】Color Hunter-用图片搜索配色方案
  20. C的回归基础学习1——真的基础

热门文章

  1. aix linux ftp,在AIX下安装配置FTP服务器
  2. csredis封装_在.NET Core中使用CSRedis
  3. python语言提供的三个基本数据类型是_python基本数据类型
  4. anaconda 包区别 版本_我是如何用Anaconda来管理Python的
  5. ShadeGraph教程之节点详解6:Procedural Nodes
  6. OpenGL学习(一)OpenGL基本介绍
  7. MYSQL学习(一) - 数据结构
  8. 在Linux Ubuntu 18.04.x上安装和配置ActiveMQ-Artemis
  9. mybatis-generator配置流程(详细) 2021-05-15
  10. the deep ritz method论文梳理