diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml
new file mode 100644
index 0000000..ddcc35c
--- /dev/null
+++ b/.github/workflows/bld.yml
@@ -0,0 +1,32 @@
+name: bld-ci
+
+on: [ push, pull_request, workflow_dispatch ]
+
+jobs:
+ build-bld-project:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ java-version: [ 17, 19, 20 ]
+
+ steps:
+ - name: Checkout source repository
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set up JDK ${{ matrix.java-version }}
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'zulu'
+ java-version: ${{ matrix.java-version }}
+
+ - name: Grant execute permission for bld
+ run: chmod +x bld
+
+ - name: Download the dependencies
+ run: ./bld download
+
+ - name: Run tests with bld
+ run: ./bld compile test
\ No newline at end of file
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..f6122cd
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,57 @@
+name: javadocs-pages
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches: ["master"]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow one concurrent deployment
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+jobs:
+ # Single deploy job since we're just deploying
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout source repository
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'zulu'
+ java-version: 17
+
+ - name: Build Javadocs
+ run: ./bld download clean javadoc
+
+ - name: Setup Pages
+ uses: actions/configure-pages@v3
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ # Upload generated Javadocs repository
+ path: 'build/javadoc/'
+
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index a63b224..a9d7499 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,4 +52,6 @@ atlassian-ide-plugin.xml
.idea/sonarlint/
# Editor-based Rest Client
-.idea/httpRequests
\ No newline at end of file
+.idea/httpRequests
+
+local.properties
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f0c7aa1..cce91cd 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,6 +7,8 @@
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 6b81d9c..e5b9677 100755
--- a/README.md
+++ b/README.md
@@ -1 +1,68 @@
-# TBD
\ No newline at end of file
+# [Bld](https://rife2.com/bld) Extension to Generate Project Version Data
+
+
+[](http://opensource.org/licenses/BSD-3-Clause)
+[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
+[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version)
+[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version)
+[](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml)
+
+To automatically create a generated version class using the default template in your project on compile:
+```java
+@Override
+public void compile() throws Exception {
+ genver();
+ super.compile();
+}
+
+@BuildCommand(summary = "Generates version class")
+public void genver() throws Exception {
+ new GeneratedVersionOperation()
+ .fromProject(this)
+ .execute();
+}
+```
+
+```text
+./bld compile
+```
+
+- [View Examples](https://github.com/rife2/bld-generated-version/tree/master/examples)
+
+## Version Class Template
+
+This is the default template:
+
+```java
+package {{v packageName/}};
+
+import java.util.Date;
+
+public final class {{v className/}} {
+ public static final String PROJECT = "{{v project/}}";
+ public static final Date BUILD_DATE = new Date({{v epoch/}}L);
+ public static final int MAJOR = {{v major/}};
+ public static final int MINOR = {{v minor/}};
+ public static final int REVISION = {{v revision/}};
+ public static final String QUALIFIER = "{{v qualifier/}}";
+ public static final String VERSION = "{{v version/}}";
+
+ private {{v className/}}() {
+ throw new UnsupportedOperationException("Illegal constructor call.");
+ }
+}
+```
+## Custom Template
+You can specified your own template using some or all of the template value tags, as follows:
+
+```java
+@BuildCommand(summary = "Generates version class")
+public void genver() throws Exception {
+ new GeneratedVersionOperation()
+ .fromProject(this)
+ .classTemplate(new File(".", "myversion.txt"))
+ .execute();
+}
+```
+
+Please check the [GeneratedVersionOperation documentation](https://rife2.github.io/bld-generated-version/rife/bld/extension/GeneratedVersionOperation.html#method-summary) for all available configuration options.
diff --git a/example/.gitignore b/example/.gitignore
new file mode 100644
index 0000000..a63b224
--- /dev/null
+++ b/example/.gitignore
@@ -0,0 +1,55 @@
+.gradle
+.DS_Store
+build
+lib/bld/**
+lib/compile/**
+lib/runtime/**
+lib/standalone/**
+lib/test/**
+!bld-wrapper.jar
+!bld-wrapper.properties
+
+# IDEA ignores
+
+# User-specific
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Editor-based Rest Client
+.idea/httpRequests
\ No newline at end of file
diff --git a/example/.idea/.gitignore b/example/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/example/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/example/.idea/.name b/example/.idea/.name
new file mode 100644
index 0000000..84c8d99
--- /dev/null
+++ b/example/.idea/.name
@@ -0,0 +1 @@
+bld-generated-version-example
diff --git a/example/.idea/app.iml b/example/.idea/app.iml
new file mode 100644
index 0000000..787b59b
--- /dev/null
+++ b/example/.idea/app.iml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/bld.iml b/example/.idea/bld.iml
new file mode 100644
index 0000000..e63e11e
--- /dev/null
+++ b/example/.idea/bld.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/inspectionProfiles/Project_Default.xml b/example/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..1e01b48
--- /dev/null
+++ b/example/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/libraries/bld.xml b/example/.idea/libraries/bld.xml
new file mode 100644
index 0000000..7596927
--- /dev/null
+++ b/example/.idea/libraries/bld.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/libraries/compile.xml b/example/.idea/libraries/compile.xml
new file mode 100644
index 0000000..9bd86aa
--- /dev/null
+++ b/example/.idea/libraries/compile.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/libraries/runtime.xml b/example/.idea/libraries/runtime.xml
new file mode 100644
index 0000000..2ae5c4b
--- /dev/null
+++ b/example/.idea/libraries/runtime.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/libraries/test.xml b/example/.idea/libraries/test.xml
new file mode 100644
index 0000000..b80486a
--- /dev/null
+++ b/example/.idea/libraries/test.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/misc.xml b/example/.idea/misc.xml
new file mode 100644
index 0000000..c958614
--- /dev/null
+++ b/example/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/modules.xml b/example/.idea/modules.xml
new file mode 100644
index 0000000..55adcb9
--- /dev/null
+++ b/example/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/runConfigurations/Run Main.xml b/example/.idea/runConfigurations/Run Main.xml
new file mode 100644
index 0000000..29c79eb
--- /dev/null
+++ b/example/.idea/runConfigurations/Run Main.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/runConfigurations/Run Tests.xml b/example/.idea/runConfigurations/Run Tests.xml
new file mode 100644
index 0000000..16fea3c
--- /dev/null
+++ b/example/.idea/runConfigurations/Run Tests.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.idea/vcs.xml b/example/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/example/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/.vscode/launch.json b/example/.vscode/launch.json
new file mode 100644
index 0000000..dc9c983
--- /dev/null
+++ b/example/.vscode/launch.json
@@ -0,0 +1,24 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Run Main",
+ "request": "launch",
+ "mainClass": "com.example.SampleMain"
+ },
+ {
+ "type": "java",
+ "name": "Run Tests",
+ "request": "launch",
+ "mainClass": "org.junit.platform.console.ConsoleLauncher",
+ "args": [
+ "--details=verbose",
+ "--scan-classpath",
+ "--disable-banner",
+ "--disable-ansi-colors",
+ "--exclude-engine=junit-platform-suite",
+ "--exclude-engine=junit-vintage"]
+ }
+ ]
+}
diff --git a/example/.vscode/settings.json b/example/.vscode/settings.json
new file mode 100644
index 0000000..4fdc74b
--- /dev/null
+++ b/example/.vscode/settings.json
@@ -0,0 +1,15 @@
+{
+ "java.project.sourcePaths": [
+ "src/main/java",
+ "src/main/resources",
+ "src/test/java",
+ "src/bld/java"
+ ],
+ "java.configuration.updateBuildConfiguration": "automatic",
+ "java.project.referencedLibraries": [
+ "${HOME}/.rife2/dist/rife2-1.6.1.jar",
+ "lib/compile/*.jar",
+ "lib/runtime/*.jar",
+ "lib/test/*.jar"
+ ]
+}
diff --git a/example/bld b/example/bld
new file mode 100755
index 0000000..dc8f609
--- /dev/null
+++ b/example/bld
@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+java -jar "$(dirname "$0")/lib/bld/bld-wrapper.jar" "$0" --build com.example.SampleBuild "$@"
\ No newline at end of file
diff --git a/example/bld.bat b/example/bld.bat
new file mode 100644
index 0000000..a31285e
--- /dev/null
+++ b/example/bld.bat
@@ -0,0 +1,4 @@
+@echo off
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+java -jar "%DIRNAME%/lib/bld/bld-wrapper.jar" "%0" --build com.example.SampleBuild %*
\ No newline at end of file
diff --git a/example/lib/bld/bld-wrapper.jar b/example/lib/bld/bld-wrapper.jar
new file mode 100644
index 0000000..8c61457
Binary files /dev/null and b/example/lib/bld/bld-wrapper.jar differ
diff --git a/example/lib/bld/bld-wrapper.properties b/example/lib/bld/bld-wrapper.properties
new file mode 100644
index 0000000..222b967
--- /dev/null
+++ b/example/lib/bld/bld-wrapper.properties
@@ -0,0 +1,6 @@
+bld.downloadExtensionJavadoc=false
+bld.downloadExtensionSources=true
+bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.0-SNAPSHOT
+bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2,RIFE2_SNAPSHOTS
+rife2.downloadLocation=
+rife2.version=1.6.1
diff --git a/example/myversion.txt b/example/myversion.txt
new file mode 100644
index 0000000..186b39b
--- /dev/null
+++ b/example/myversion.txt
@@ -0,0 +1,17 @@
+package {{v packageName/}};
+
+import java.util.Date;
+
+public final class {{v className/}} {
+ public static final String PROJECT = "{{v project/}}";
+ public static final Date BUILD_DATE = new Date({{v epoch/}}L);
+ public static final int MAJOR = {{v major/}};
+ public static final int MINOR = {{v minor/}};
+ public static final int REVISION = {{v revision/}};
+ public static final String QUALIFIER = "{{v qualifier/}}";
+ public static final String VERSION = "{{v version/}}";
+
+ private {{v className/}}() {
+ throw new UnsupportedOperationException("Illegal constructor call.");
+ }
+}
\ No newline at end of file
diff --git a/example/src/bld/java/com/example/SampleBuild.java b/example/src/bld/java/com/example/SampleBuild.java
new file mode 100644
index 0000000..a09224b
--- /dev/null
+++ b/example/src/bld/java/com/example/SampleBuild.java
@@ -0,0 +1,45 @@
+package com.example;
+
+import rife.bld.BuildCommand;
+import rife.bld.Project;
+import rife.bld.extension.GeneratedVersionOperation;
+
+import java.io.File;
+import java.util.List;
+
+import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
+import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
+import static rife.bld.dependencies.Scope.test;
+
+public class SampleBuild extends Project {
+ public SampleBuild() {
+ pkg = "com.example";
+ name = "Sample";
+ mainClass = "com.example.SampleMain";
+ version = version(1, 0, 1, "rc1");
+
+ downloadSources = true;
+ repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
+ scope(test)
+ .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 2)))
+ .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 2)));
+ }
+
+ public static void main(String[] args) {
+ new SampleBuild().start(args);
+ }
+
+ @Override
+ public void compile() throws Exception {
+ genver();
+ super.compile();
+ }
+
+ @BuildCommand(summary = "Generates version class")
+ public void genver() throws Exception {
+ new GeneratedVersionOperation()
+ .fromProject(this)
+// .classTemplate(new File(".", "myversion.txt"))
+ .execute();
+ }
+}
\ No newline at end of file
diff --git a/example/src/main/java/com/example/GeneratedVersion.java b/example/src/main/java/com/example/GeneratedVersion.java
new file mode 100644
index 0000000..90b566f
--- /dev/null
+++ b/example/src/main/java/com/example/GeneratedVersion.java
@@ -0,0 +1,17 @@
+package com.example;
+
+import java.util.Date;
+
+public final class GeneratedVersion {
+ public static final String PROJECT = "Sample";
+ public static final Date BUILD_DATE = new Date(1682700481013L);
+ public static final int MAJOR = 1;
+ public static final int MINOR = 0;
+ public static final int REVISION = 1;
+ public static final String QUALIFIER = "rc1";
+ public static final String VERSION = "1.0.1-rc1";
+
+ private GeneratedVersion() {
+ throw new UnsupportedOperationException("Illegal constructor call.");
+ }
+}
\ No newline at end of file
diff --git a/example/src/main/java/com/example/SampleMain.java b/example/src/main/java/com/example/SampleMain.java
new file mode 100644
index 0000000..cf7f5aa
--- /dev/null
+++ b/example/src/main/java/com/example/SampleMain.java
@@ -0,0 +1,22 @@
+package com.example;
+
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
+public class SampleMain {
+ public static void main(String[] args) {
+ final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z", Locale.US);
+
+ System.out.println("-----------------------------------------------------");
+
+ System.out.println(" Version: " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION);
+
+ System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILD_DATE));
+ System.out.println(" Major: " + GeneratedVersion.MAJOR);
+ System.out.println(" Minor: " + GeneratedVersion.MINOR);
+ System.out.println(" Revision: " + GeneratedVersion.REVISION);
+ System.out.println(" Qualifier:: " + GeneratedVersion.QUALIFIER);
+
+ System.out.println("-----------------------------------------------------");
+ }
+}
\ No newline at end of file
diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java
index e4500de..4dc52d1 100644
--- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java
+++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java
@@ -1,16 +1,20 @@
package rife.bld.extension;
-import rife.bld.BaseProject;
import rife.bld.BuildCommand;
+import rife.bld.Project;
+import rife.bld.publish.PublishDeveloper;
+import rife.bld.publish.PublishLicense;
+import rife.bld.publish.PublishScm;
import java.util.List;
-import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
-import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
+import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.Scope.compile;
import static rife.bld.dependencies.Scope.test;
+import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
+import static rife.bld.operations.TemplateType.TXT;
-public class GeneratedVersionOperationBuild extends BaseProject {
+public class GeneratedVersionOperationBuild extends Project {
public GeneratedVersionOperationBuild() {
pkg = "rife.bld.extension";
name = "GeneratedVersionOperation";
@@ -27,6 +31,33 @@ public class GeneratedVersionOperationBuild extends BaseProject {
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 2)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 2)))
.include(dependency("org.assertj:assertj-joda-time:2.2.0"));
+
+ precompileOperation()
+ .templateTypes(TXT);
+
+ javadocOperation()
+ .javadocOptions()
+ .docLint(NO_MISSING)
+ .link("https://rife2.github.io/rife2/")
+ .link("https://javadoc.io/doc/net.sourceforge.pmd/pmd-core/latest/");
+
+ publishOperation()
+ .repository(MAVEN_LOCAL)
+// .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
+ .info()
+ .groupId("com.uwyn.rife2")
+ .artifactId("bld-generated-version")
+ .description("bld Extension to Generate Project Version Data")
+ .url("https://github.com/rife2/generated-version")
+ .developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net")
+ .url("https://erik.thauvin.net/"))
+ .license(new PublishLicense().name("The Apache License, Version 2.0")
+ .url("http://www.apache.org/licenses/LICENSE-2.0.txt"))
+ .scm(new PublishScm().connection("scm:git:https://github.com/rife2/generated-version.git")
+ .developerConnection("scm:git:git@github.com:rife2/generated-version.git")
+ .url("https://github.com/rife2/generated-version"))
+ .signKey(property("sign.key"))
+ .signPassphrase(property("sign.passphrase"));
}
public static void main(String[] args) {
diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java
index 5662d5b..3f0216d 100644
--- a/src/main/java/rife/bld/extension/GeneratedVersion.java
+++ b/src/main/java/rife/bld/extension/GeneratedVersion.java
@@ -29,6 +29,7 @@ import java.io.File;
@SuppressWarnings("PMD.DataClass")
public class GeneratedVersion {
private String className;
+ private File classFile;
private String packageName;
private BaseProject project;
private String projectName;
@@ -38,38 +39,46 @@ public class GeneratedVersion {
return className;
}
- public String getPackageName() {
- return packageName;
- }
-
- public BaseProject getProject() {
- return project;
- }
-
- public String getProjectName() {
- return projectName;
- }
-
- public File getTemplate() {
- return template;
- }
-
public void setClassName(String className) {
this.className = className;
}
+ public File getClassFile() {
+ return classFile;
+ }
+
+ public void setClassFile(File classFile) {
+ this.classFile = classFile;
+ }
+
+ public String getPackageName() {
+ return packageName;
+ }
+
public void setPackageName(String packageName) {
this.packageName = packageName;
}
+ public BaseProject getProject() {
+ return project;
+ }
+
public void setProject(BaseProject project) {
this.project = project;
}
+ public String getProjectName() {
+ return projectName;
+ }
+
public void setProjectName(String projectName) {
this.projectName = projectName;
}
+ public File getTemplate() {
+ return template;
+ }
+
public void setTemplate(File template) {
this.template = template;
}
diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java
index c779cc0..7111ee3 100644
--- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java
+++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java
@@ -21,11 +21,12 @@ import rife.bld.BaseProject;
import rife.bld.operations.AbstractOperation;
import rife.resources.ResourceFinderDirectories;
import rife.template.Template;
+import rife.template.TemplateConfig;
import rife.template.TemplateFactory;
import rife.tools.FileUtils;
-import rife.tools.exceptions.FileUtilsErrorException;
import java.io.File;
+import java.io.IOException;
import java.nio.file.Path;
import java.util.Objects;
import java.util.logging.Level;
@@ -60,7 +61,8 @@ public class GeneratedVersionOperation extends AbstractOperation