Skip to content

Instantly share code, notes, and snippets.

@ebuildy
Last active January 23, 2019 11:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ebuildy/0e1b79cb9db11edd0a7af4b875038efc to your computer and use it in GitHub Desktop.
Save ebuildy/0e1b79cb9db11edd0a7af4b875038efc to your computer and use it in GitHub Desktop.
Gradle task to create release note
plugins {
...
id "org.ajoberstar.grgit" version "3.0.0"
}
task createReleaseReportFile() {
doLast {
file("$projectDir/src/main/resources/release_note.properties").text = """## Automated generated by Gradle ##
version=${file("VERSION").text.trim()}
revision=${Grgit.open(dir: '.').head().id}
time=${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())}
author=${System.properties['user.name']}
"""
}
}
compileJava {
dependsOn createReleaseReportFile
}
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
class Read {
final private Map<String, String> releaseNote = new HashMap<>();
private void loadReleaseNote() {
final Properties buffer = new Properties();
final ClassLoader classLoader = getClass().getClassLoader();
final String releaseNoteFilePath = "release_note.properties";
try {
final InputStream inputStream = classLoader.getResourceAsStream(releaseNoteFilePath);
if (inputStream != null) {
buffer.load(inputStream);
} else {
throw new FileNotFoundException("property file '" + releaseNoteFilePath + "' not found in the classpath");
}
} catch (Exception e) {
logger.error("loading release_note", e);
}
for (Map.Entry<Object, Object> entry : buffer.entrySet()) {
releaseNote.put(entry.getKey().toString(), entry.getValue().toString());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment