我的Gradle项目之一有10个子项目。对于Gradle任务中的每个项目,我想生成一个Java属性文件来指定项目名称,因为我需要在运行时知道项目名称。属性文件应转到每个项目的资源目录。因为项目的数量可能会随着时间的推移而增长,所以我认为不为每个项目添加资源文件,而是通过Gradle生成它。
例如,对于project :custom:a,我需要在resources目录中具有一个project-info.properties文件,其内容为:
project=a
Run Code Online (Sandbox Code Playgroud)
对于项目:custom:b,我想要一个类似的project-info.properties文件:
project=b
Run Code Online (Sandbox Code Playgroud)
如何生成文件并将其放入Java资源目录?
我试图在所有项目中添加以下规则,但似乎不再生成这些文件(也许我引入了一些重大更改):
processResources {
def resourcesDir = sourceSets.main.output.resourcesDir
resourcesDir.mkdirs()
def contents = "projectInfo.project=$project.name"
new File(resourcesDir, "project-info.properties").text = contents
}
Run Code Online (Sandbox Code Playgroud)
编辑:文件应在生成目录中生成,而不是在源代码中生成。
我正在运行jstat -gc(来自OpenJDK):
# jstat -gc 1
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
287744.0 290304.0 88368.6 0.0 1469440.0 787186.5 2162176.0 1805969.7 945432.0 923880.4 136576.0 133284.0 268 32.797 21 30.089 62.886
Run Code Online (Sandbox Code Playgroud)
如何阅读:
用过的堆
堆大小
最大堆
从这个输出,就像VisualVM所示?