From 66f7d180b9b8b2ba6ce14875b260de34228e9ff6 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Sat, 16 Nov 2024 18:23:10 -0500 Subject: [PATCH] Implements #52 : command line enhancements for project creation --- .../bld/blueprints/AppProjectBlueprint.java | 8 +- .../bld/blueprints/BaseProjectBlueprint.java | 8 +- .../bld/blueprints/LibProjectBlueprint.java | 8 +- .../bld/blueprints/Rife2ProjectBlueprint.java | 8 +- .../java/rife/bld/help/CreateAppHelp.java | 7 +- .../java/rife/bld/help/CreateBaseHelp.java | 7 +- src/main/java/rife/bld/help/CreateHelp.java | 7 +- .../java/rife/bld/help/CreateLibHelp.java | 7 +- .../java/rife/bld/help/CreateRife2Help.java | 7 +- .../operations/AbstractCreateOperation.java | 89 +- .../bld/operations/CreateAppOperation.java | 2 +- .../bld/operations/CreateBaseOperation.java | 2 +- .../bld/operations/CreateLibOperation.java | 2 +- .../rife/bld/operations/CreateOperation.java | 29 +- .../bld/operations/CreateRife2Operation.java | 4 +- src/main/resources/BLD_VERSION | 2 +- .../operations/TestCreateAppOperation.java | 737 ++++++------ .../operations/TestCreateBaseOperation.java | 458 ++++---- .../operations/TestCreateLibOperation.java | 297 ++--- .../operations/TestCreateRife2Operation.java | 1042 +++++++++-------- .../bld/operations/TestPublishOperation.java | 16 +- 21 files changed, 1421 insertions(+), 1326 deletions(-) diff --git a/src/main/java/rife/bld/blueprints/AppProjectBlueprint.java b/src/main/java/rife/bld/blueprints/AppProjectBlueprint.java index 72a008e..05813da 100644 --- a/src/main/java/rife/bld/blueprints/AppProjectBlueprint.java +++ b/src/main/java/rife/bld/blueprints/AppProjectBlueprint.java @@ -22,16 +22,16 @@ import static rife.bld.dependencies.Scope.test; * @since 1.9 */ public class AppProjectBlueprint extends Project { - public AppProjectBlueprint(File work, String packageName, String projectName) { - this(work, packageName, projectName, new VersionNumber(0,0,1)); + public AppProjectBlueprint(File work, String packageName, String projectName, String baseName) { + this(work, packageName, projectName, baseName, new VersionNumber(0,0,1)); } - public AppProjectBlueprint(File work, String packageName, String projectName, VersionNumber versionNumber) { + public AppProjectBlueprint(File work, String packageName, String projectName, String baseName, VersionNumber versionNumber) { workDirectory = work; pkg = packageName; name = projectName; - mainClass = packageName + "." + StringUtils.capitalize(projectName) + "Main"; + mainClass = packageName + "." + baseName + "Main"; version = versionNumber; downloadSources = true; diff --git a/src/main/java/rife/bld/blueprints/BaseProjectBlueprint.java b/src/main/java/rife/bld/blueprints/BaseProjectBlueprint.java index 440cb11..3ff955f 100644 --- a/src/main/java/rife/bld/blueprints/BaseProjectBlueprint.java +++ b/src/main/java/rife/bld/blueprints/BaseProjectBlueprint.java @@ -21,16 +21,16 @@ import static rife.bld.dependencies.Repository.SONATYPE_SNAPSHOTS; * @since 1.5.20 */ public class BaseProjectBlueprint extends Project { - public BaseProjectBlueprint(File work, String packageName, String projectName) { - this(work, packageName, projectName, new VersionNumber(0,0,1)); + public BaseProjectBlueprint(File work, String packageName, String projectName, String baseName) { + this(work, packageName, projectName, baseName, new VersionNumber(0,0,1)); } - public BaseProjectBlueprint(File work, String packageName, String projectName, VersionNumber versionNumber) { + public BaseProjectBlueprint(File work, String packageName, String projectName, String baseName, VersionNumber versionNumber) { workDirectory = work; pkg = packageName; name = projectName; - mainClass = packageName + "." + StringUtils.capitalize(projectName) + "Main"; + mainClass = packageName + "." + baseName + "Main"; version = versionNumber; downloadSources = true; diff --git a/src/main/java/rife/bld/blueprints/LibProjectBlueprint.java b/src/main/java/rife/bld/blueprints/LibProjectBlueprint.java index f4fbbf4..8f56e92 100644 --- a/src/main/java/rife/bld/blueprints/LibProjectBlueprint.java +++ b/src/main/java/rife/bld/blueprints/LibProjectBlueprint.java @@ -22,16 +22,16 @@ import static rife.bld.dependencies.Scope.test; * @since 1.6 */ public class LibProjectBlueprint extends Project { - public LibProjectBlueprint(File work, String packageName, String projectName) { - this(work, packageName, projectName, new VersionNumber(0,0,1)); + public LibProjectBlueprint(File work, String packageName, String projectName, String baseName) { + this(work, packageName, projectName, baseName, new VersionNumber(0,0,1)); } - public LibProjectBlueprint(File work, String packageName, String projectName, VersionNumber versionNumber) { + public LibProjectBlueprint(File work, String packageName, String projectName, String baseName, VersionNumber versionNumber) { workDirectory = work; pkg = packageName; name = projectName; - mainClass = packageName + "." + StringUtils.capitalize(projectName) + "Lib"; + mainClass = packageName + "." + baseName + "Lib"; version = versionNumber; downloadSources = true; diff --git a/src/main/java/rife/bld/blueprints/Rife2ProjectBlueprint.java b/src/main/java/rife/bld/blueprints/Rife2ProjectBlueprint.java index 268eabf..9b67d2b 100644 --- a/src/main/java/rife/bld/blueprints/Rife2ProjectBlueprint.java +++ b/src/main/java/rife/bld/blueprints/Rife2ProjectBlueprint.java @@ -23,16 +23,16 @@ import static rife.bld.dependencies.Scope.*; * @since 1.5 */ public class Rife2ProjectBlueprint extends WebProject { - public Rife2ProjectBlueprint(File work, String packageName, String projectName) { - this(work, packageName, projectName, new VersionNumber(0,0,1)); + public Rife2ProjectBlueprint(File work, String packageName, String projectName, String baseName) { + this(work, packageName, projectName, baseName, new VersionNumber(0,0,1)); } - public Rife2ProjectBlueprint(File work, String packageName, String projectName, VersionNumber versionNumber) { + public Rife2ProjectBlueprint(File work, String packageName, String projectName, String baseName, VersionNumber versionNumber) { workDirectory = work; pkg = packageName; name = projectName; - mainClass = packageName + "." + StringUtils.capitalize(projectName) + "Site"; + mainClass = packageName + "." + baseName + "Site"; uberJarMainClass = mainClass + "Uber"; version = versionNumber; diff --git a/src/main/java/rife/bld/help/CreateAppHelp.java b/src/main/java/rife/bld/help/CreateAppHelp.java index 6ea3a7b..d213c56 100644 --- a/src/main/java/rife/bld/help/CreateAppHelp.java +++ b/src/main/java/rife/bld/help/CreateAppHelp.java @@ -21,9 +21,10 @@ public class CreateAppHelp implements CommandHelp { public String getDescription(String topic) { return StringUtils.replace(""" Creates a new Java application project. - - Usage : ${topic} + + Usage : ${topic} package The package of the project to create - name The name of the project to create""", "${topic}", topic); + name The name of the project to create + base The base name for generated project classes""", "${topic}", topic); } } diff --git a/src/main/java/rife/bld/help/CreateBaseHelp.java b/src/main/java/rife/bld/help/CreateBaseHelp.java index d538c46..c88f14d 100644 --- a/src/main/java/rife/bld/help/CreateBaseHelp.java +++ b/src/main/java/rife/bld/help/CreateBaseHelp.java @@ -21,9 +21,10 @@ public class CreateBaseHelp implements CommandHelp { public String getDescription(String topic) { return StringUtils.replace(""" Creates a new Java baseline project. - - Usage : ${topic} + + Usage : ${topic} package The package of the project to create - name The name of the project to create""", "${topic}", topic); + name The name of the project to create + base The base name for generated project classes""", "${topic}", topic); } } diff --git a/src/main/java/rife/bld/help/CreateHelp.java b/src/main/java/rife/bld/help/CreateHelp.java index ec2313b..adfde03 100644 --- a/src/main/java/rife/bld/help/CreateHelp.java +++ b/src/main/java/rife/bld/help/CreateHelp.java @@ -21,10 +21,11 @@ public class CreateHelp implements CommandHelp { public String getDescription(String topic) { return StringUtils.replace(""" Creates a new project from multiple choice. - - Usage : ${topic} + + Usage : ${topic} type The type of project to create (app, base, lib, rife2) package The package of the project to create - name The name of the project to create""", "${topic}", topic); + name The name of the project to create + base The base name for generated project classes""", "${topic}", topic); } } diff --git a/src/main/java/rife/bld/help/CreateLibHelp.java b/src/main/java/rife/bld/help/CreateLibHelp.java index e72b2b2..4cbc552 100644 --- a/src/main/java/rife/bld/help/CreateLibHelp.java +++ b/src/main/java/rife/bld/help/CreateLibHelp.java @@ -21,9 +21,10 @@ public class CreateLibHelp implements CommandHelp { public String getDescription(String topic) { return StringUtils.replace(""" Creates a new Java library project. - - Usage : ${topic} + + Usage : ${topic} package The package of the project to create - name The name of the project to create""", "${topic}", topic); + name The name of the project to create + base The base name for generated project classes""", "${topic}", topic); } } diff --git a/src/main/java/rife/bld/help/CreateRife2Help.java b/src/main/java/rife/bld/help/CreateRife2Help.java index 2ca8a9c..ec32108 100644 --- a/src/main/java/rife/bld/help/CreateRife2Help.java +++ b/src/main/java/rife/bld/help/CreateRife2Help.java @@ -21,9 +21,10 @@ public class CreateRife2Help implements CommandHelp { public String getDescription(String topic) { return StringUtils.replace(""" Creates a new RIFE2 web application project. - - Usage : ${topic} + + Usage : ${topic} package The package of the project to create - name The name of the project to create""", "${topic}", topic); + name The name of the project to create + base The base name for generated project classes""", "${topic}", topic); } } diff --git a/src/main/java/rife/bld/operations/AbstractCreateOperation.java b/src/main/java/rife/bld/operations/AbstractCreateOperation.java index 8de2cae..5d4a3b9 100644 --- a/src/main/java/rife/bld/operations/AbstractCreateOperation.java +++ b/src/main/java/rife/bld/operations/AbstractCreateOperation.java @@ -26,11 +26,13 @@ import java.util.List; * @since 1.5 */ public abstract class AbstractCreateOperation, P extends Project> extends AbstractOperation> { + private String packageName_; + private String projectName_; + private String baseName_; + final String templateBase_; File workDirectory_ = new File(System.getProperty("user.dir")); - String packageName_; - String projectName_; boolean downloadDependencies_; P project_; @@ -98,10 +100,11 @@ public abstract class AbstractCreateOperation arguments) { String package_name = null; String project_name = null; + String base_name = null; if (!arguments.isEmpty()) { package_name = arguments.remove(0); } if (!arguments.isEmpty()) { project_name = arguments.remove(0); } - if ((package_name == null || project_name == null) && System.console() == null) { - throw new OperationOptionException("ERROR: Expecting the package and project names as the arguments."); + if (!arguments.isEmpty()) { + base_name = arguments.remove(0); + } + if ((package_name == null || project_name == null || base_name == null) && System.console() == null) { + throw new OperationOptionException("ERROR: Expecting the package, project and base names as the arguments."); } if (package_name == null || package_name.isEmpty()) { @@ -391,16 +398,30 @@ public abstract class AbstractCreateOperation + * If no base name was provided, one will be generated from the project name. + * + * @return the base name + * @since 2.2 + */ + public String baseName() { + if (baseName_ == null || baseName_.isEmpty()) { + return generateBaseName(projectName()); + } + + return baseName_; + } + /** * Retrieves whether dependencies will be downloaded at project creation. * diff --git a/src/main/java/rife/bld/operations/CreateAppOperation.java b/src/main/java/rife/bld/operations/CreateAppOperation.java index 75ae88b..8ba2c7b 100644 --- a/src/main/java/rife/bld/operations/CreateAppOperation.java +++ b/src/main/java/rife/bld/operations/CreateAppOperation.java @@ -21,6 +21,6 @@ public class CreateAppOperation extends AbstractCreateOperationHello World Myapp

")); + assertTrue(check_result.toString().contains("

Hello World My-app

")); } finally { FileUtils.deleteDirectory(tmp); } @@ -327,72 +328,73 @@ public class TestCreateRife2Operation { var create_operation = new CreateRife2Operation() .workDirectory(tmp) .packageName("org.stuff") - .projectName("yourthing"); + .projectName("your-thing") + .baseName("YourThing"); create_operation.execute(); assertEquals(""" - /yourthing - /yourthing/.gitignore - /yourthing/.idea - /yourthing/.idea/app.iml - /yourthing/.idea/bld.iml - /yourthing/.idea/libraries - /yourthing/.idea/libraries/bld.xml - /yourthing/.idea/libraries/compile.xml - /yourthing/.idea/libraries/runtime.xml - /yourthing/.idea/libraries/standalone.xml - /yourthing/.idea/libraries/test.xml - /yourthing/.idea/misc.xml - /yourthing/.idea/modules.xml - /yourthing/.idea/runConfigurations - /yourthing/.idea/runConfigurations/Run Main.xml - /yourthing/.idea/runConfigurations/Run Tests.xml - /yourthing/.vscode - /yourthing/.vscode/launch.json - /yourthing/.vscode/settings.json - /yourthing/bld - /yourthing/bld.bat - /yourthing/lib - /yourthing/lib/bld - /yourthing/lib/bld/bld-wrapper.jar - /yourthing/lib/bld/bld-wrapper.properties - /yourthing/lib/compile - /yourthing/lib/compile/modules - /yourthing/lib/provided - /yourthing/lib/provided/modules - /yourthing/lib/runtime - /yourthing/lib/runtime/modules - /yourthing/lib/standalone - /yourthing/lib/standalone/modules - /yourthing/lib/test - /yourthing/lib/test/modules - /yourthing/src - /yourthing/src/bld - /yourthing/src/bld/java - /yourthing/src/bld/java/org - /yourthing/src/bld/java/org/stuff - /yourthing/src/bld/java/org/stuff/YourthingBuild.java - /yourthing/src/bld/resources - /yourthing/src/main - /yourthing/src/main/java - /yourthing/src/main/java/org - /yourthing/src/main/java/org/stuff - /yourthing/src/main/java/org/stuff/YourthingSite.java - /yourthing/src/main/java/org/stuff/YourthingSiteUber.java - /yourthing/src/main/resources - /yourthing/src/main/resources/templates - /yourthing/src/main/resources/templates/hello.html - /yourthing/src/main/webapp - /yourthing/src/main/webapp/WEB-INF - /yourthing/src/main/webapp/WEB-INF/web.xml - /yourthing/src/main/webapp/css - /yourthing/src/main/webapp/css/style.css - /yourthing/src/test - /yourthing/src/test/java - /yourthing/src/test/java/org - /yourthing/src/test/java/org/stuff - /yourthing/src/test/java/org/stuff/YourthingTest.java - /yourthing/src/test/resources""", + /your-thing + /your-thing/.gitignore + /your-thing/.idea + /your-thing/.idea/app.iml + /your-thing/.idea/bld.iml + /your-thing/.idea/libraries + /your-thing/.idea/libraries/bld.xml + /your-thing/.idea/libraries/compile.xml + /your-thing/.idea/libraries/runtime.xml + /your-thing/.idea/libraries/standalone.xml + /your-thing/.idea/libraries/test.xml + /your-thing/.idea/misc.xml + /your-thing/.idea/modules.xml + /your-thing/.idea/runConfigurations + /your-thing/.idea/runConfigurations/Run Main.xml + /your-thing/.idea/runConfigurations/Run Tests.xml + /your-thing/.vscode + /your-thing/.vscode/launch.json + /your-thing/.vscode/settings.json + /your-thing/bld + /your-thing/bld.bat + /your-thing/lib + /your-thing/lib/bld + /your-thing/lib/bld/bld-wrapper.jar + /your-thing/lib/bld/bld-wrapper.properties + /your-thing/lib/compile + /your-thing/lib/compile/modules + /your-thing/lib/provided + /your-thing/lib/provided/modules + /your-thing/lib/runtime + /your-thing/lib/runtime/modules + /your-thing/lib/standalone + /your-thing/lib/standalone/modules + /your-thing/lib/test + /your-thing/lib/test/modules + /your-thing/src + /your-thing/src/bld + /your-thing/src/bld/java + /your-thing/src/bld/java/org + /your-thing/src/bld/java/org/stuff + /your-thing/src/bld/java/org/stuff/YourThingBuild.java + /your-thing/src/bld/resources + /your-thing/src/main + /your-thing/src/main/java + /your-thing/src/main/java/org + /your-thing/src/main/java/org/stuff + /your-thing/src/main/java/org/stuff/YourThingSite.java + /your-thing/src/main/java/org/stuff/YourThingSiteUber.java + /your-thing/src/main/resources + /your-thing/src/main/resources/templates + /your-thing/src/main/resources/templates/hello.html + /your-thing/src/main/webapp + /your-thing/src/main/webapp/WEB-INF + /your-thing/src/main/webapp/WEB-INF/web.xml + /your-thing/src/main/webapp/css + /your-thing/src/main/webapp/css/style.css + /your-thing/src/test + /your-thing/src/test/java + /your-thing/src/test/java/org + /your-thing/src/test/java/org/stuff + /your-thing/src/test/java/org/stuff/YourThingTest.java + /your-thing/src/test/resources""", FileUtils.generateDirectoryListing(tmp)); var compile_operation = new CompileOperation() { @@ -417,7 +419,8 @@ public class TestCreateRife2Operation { var create_operation = new CreateRife2Operation() .workDirectory(tmp) .packageName("com.example") - .projectName("myapp") + .projectName("my-app") + .baseName("MyApp") .downloadDependencies(true); create_operation.execute(); @@ -447,121 +450,121 @@ public class TestCreateRife2Operation { compile_operation.execute(); assertTrue(compile_operation.diagnostics().isEmpty()); assertTrue(Pattern.compile(""" - /myapp - /myapp/\\.gitignore - /myapp/\\.idea - /myapp/\\.idea/app\\.iml - /myapp/\\.idea/bld\\.iml - /myapp/\\.idea/libraries - /myapp/\\.idea/libraries/bld\\.xml - /myapp/\\.idea/libraries/compile\\.xml - /myapp/\\.idea/libraries/runtime\\.xml - /myapp/\\.idea/libraries/standalone\\.xml - /myapp/\\.idea/libraries/test\\.xml - /myapp/\\.idea/misc\\.xml - /myapp/\\.idea/modules\\.xml - /myapp/\\.idea/runConfigurations - /myapp/\\.idea/runConfigurations/Run Main\\.xml - /myapp/\\.idea/runConfigurations/Run Tests\\.xml - /myapp/\\.vscode - /myapp/\\.vscode/launch\\.json - /myapp/\\.vscode/settings\\.json - /myapp/bld - /myapp/bld\\.bat - /myapp/build - /myapp/build/main - /myapp/build/main/com - /myapp/build/main/com/example - /myapp/build/main/com/example/MyappSite\\.class - /myapp/build/main/com/example/MyappSiteUber\\.class - /myapp/build/test - /myapp/build/test/com - /myapp/build/test/com/example - /myapp/build/test/com/example/MyappTest\\.class - /myapp/lib - /myapp/lib/bld - /myapp/lib/bld/bld-wrapper\\.jar - /myapp/lib/bld/bld-wrapper\\.properties - /myapp/lib/compile - /myapp/lib/compile/modules - /myapp/lib/local - /myapp/lib/local/apiguardian-api-1\\.1\\.2-sources\\.jar - /myapp/lib/local/apiguardian-api-1\\.1\\.2\\.jar - /myapp/lib/local/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar - /myapp/lib/local/jakarta\\.servlet-api-6\\.0\\.0\\.jar - /myapp/lib/local/jetty-ee10-servlet-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-ee10-servlet-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-http-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-http-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-io-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-io-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-security-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-security-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-server-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-server-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-session-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-session-12\\.0\\.12\\.jar - /myapp/lib/local/jetty-util-12\\.0\\.12-sources\\.jar - /myapp/lib/local/jetty-util-12\\.0\\.12\\.jar - /myapp/lib/local/jsoup-1\\.18\\.1-sources\\.jar - /myapp/lib/local/jsoup-1\\.18\\.1\\.jar - /myapp/lib/local/junit-jupiter-5\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-jupiter-5\\.11\\.0\\.jar - /myapp/lib/local/junit-jupiter-api-5\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-jupiter-api-5\\.11\\.0\\.jar - /myapp/lib/local/junit-jupiter-engine-5\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-jupiter-engine-5\\.11\\.0\\.jar - /myapp/lib/local/junit-jupiter-params-5\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-jupiter-params-5\\.11\\.0\\.jar - /myapp/lib/local/junit-platform-commons-1\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-platform-commons-1\\.11\\.0\\.jar - /myapp/lib/local/junit-platform-console-standalone-1\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-platform-console-standalone-1\\.11\\.0\\.jar - /myapp/lib/local/junit-platform-engine-1\\.11\\.0-sources\\.jar - /myapp/lib/local/junit-platform-engine-1\\.11\\.0\\.jar - /myapp/lib/local/opentest4j-1\\.3\\.0-sources\\.jar - /myapp/lib/local/opentest4j-1\\.3\\.0\\.jar - /myapp/lib/local/rife2-.*-sources\\.jar - /myapp/lib/local/rife2-.*\\.jar - /myapp/lib/local/slf4j-api-2\\.0\\.13-sources\\.jar - /myapp/lib/local/slf4j-api-2\\.0\\.13\\.jar - /myapp/lib/local/slf4j-simple-2\\.0\\.13-sources\\.jar - /myapp/lib/local/slf4j-simple-2\\.0\\.13\\.jar - /myapp/lib/provided - /myapp/lib/provided/modules - /myapp/lib/runtime - /myapp/lib/runtime/modules - /myapp/lib/standalone - /myapp/lib/standalone/modules - /myapp/lib/test - /myapp/lib/test/modules - /myapp/src - /myapp/src/bld - /myapp/src/bld/java - /myapp/src/bld/java/com - /myapp/src/bld/java/com/example - /myapp/src/bld/java/com/example/MyappBuild\\.java - /myapp/src/bld/resources - /myapp/src/main - /myapp/src/main/java - /myapp/src/main/java/com - /myapp/src/main/java/com/example - /myapp/src/main/java/com/example/MyappSite\\.java - /myapp/src/main/java/com/example/MyappSiteUber\\.java - /myapp/src/main/resources - /myapp/src/main/resources/templates - /myapp/src/main/resources/templates/hello\\.html - /myapp/src/main/webapp - /myapp/src/main/webapp/WEB-INF - /myapp/src/main/webapp/WEB-INF/web\\.xml - /myapp/src/main/webapp/css - /myapp/src/main/webapp/css/style\\.css - /myapp/src/test - /myapp/src/test/java - /myapp/src/test/java/com - /myapp/src/test/java/com/example - /myapp/src/test/java/com/example/MyappTest\\.java - /myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); + /my-app + /my-app/\\.gitignore + /my-app/\\.idea + /my-app/\\.idea/app\\.iml + /my-app/\\.idea/bld\\.iml + /my-app/\\.idea/libraries + /my-app/\\.idea/libraries/bld\\.xml + /my-app/\\.idea/libraries/compile\\.xml + /my-app/\\.idea/libraries/runtime\\.xml + /my-app/\\.idea/libraries/standalone\\.xml + /my-app/\\.idea/libraries/test\\.xml + /my-app/\\.idea/misc\\.xml + /my-app/\\.idea/modules\\.xml + /my-app/\\.idea/runConfigurations + /my-app/\\.idea/runConfigurations/Run Main\\.xml + /my-app/\\.idea/runConfigurations/Run Tests\\.xml + /my-app/\\.vscode + /my-app/\\.vscode/launch\\.json + /my-app/\\.vscode/settings\\.json + /my-app/bld + /my-app/bld\\.bat + /my-app/build + /my-app/build/main + /my-app/build/main/com + /my-app/build/main/com/example + /my-app/build/main/com/example/MyAppSite\\.class + /my-app/build/main/com/example/MyAppSiteUber\\.class + /my-app/build/test + /my-app/build/test/com + /my-app/build/test/com/example + /my-app/build/test/com/example/MyAppTest\\.class + /my-app/lib + /my-app/lib/bld + /my-app/lib/bld/bld-wrapper\\.jar + /my-app/lib/bld/bld-wrapper\\.properties + /my-app/lib/compile + /my-app/lib/compile/modules + /my-app/lib/local + /my-app/lib/local/apiguardian-api-1\\.1\\.2-sources\\.jar + /my-app/lib/local/apiguardian-api-1\\.1\\.2\\.jar + /my-app/lib/local/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar + /my-app/lib/local/jakarta\\.servlet-api-6\\.0\\.0\\.jar + /my-app/lib/local/jetty-ee10-servlet-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-ee10-servlet-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-http-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-http-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-io-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-io-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-security-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-security-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-server-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-server-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-session-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-session-12\\.0\\.12\\.jar + /my-app/lib/local/jetty-util-12\\.0\\.12-sources\\.jar + /my-app/lib/local/jetty-util-12\\.0\\.12\\.jar + /my-app/lib/local/jsoup-1\\.18\\.1-sources\\.jar + /my-app/lib/local/jsoup-1\\.18\\.1\\.jar + /my-app/lib/local/junit-jupiter-5\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-jupiter-5\\.11\\.0\\.jar + /my-app/lib/local/junit-jupiter-api-5\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-jupiter-api-5\\.11\\.0\\.jar + /my-app/lib/local/junit-jupiter-engine-5\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-jupiter-engine-5\\.11\\.0\\.jar + /my-app/lib/local/junit-jupiter-params-5\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-jupiter-params-5\\.11\\.0\\.jar + /my-app/lib/local/junit-platform-commons-1\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-platform-commons-1\\.11\\.0\\.jar + /my-app/lib/local/junit-platform-console-standalone-1\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-platform-console-standalone-1\\.11\\.0\\.jar + /my-app/lib/local/junit-platform-engine-1\\.11\\.0-sources\\.jar + /my-app/lib/local/junit-platform-engine-1\\.11\\.0\\.jar + /my-app/lib/local/opentest4j-1\\.3\\.0-sources\\.jar + /my-app/lib/local/opentest4j-1\\.3\\.0\\.jar + /my-app/lib/local/rife2-.*-sources\\.jar + /my-app/lib/local/rife2-.*\\.jar + /my-app/lib/local/slf4j-api-2\\.0\\.13-sources\\.jar + /my-app/lib/local/slf4j-api-2\\.0\\.13\\.jar + /my-app/lib/local/slf4j-simple-2\\.0\\.13-sources\\.jar + /my-app/lib/local/slf4j-simple-2\\.0\\.13\\.jar + /my-app/lib/provided + /my-app/lib/provided/modules + /my-app/lib/runtime + /my-app/lib/runtime/modules + /my-app/lib/standalone + /my-app/lib/standalone/modules + /my-app/lib/test + /my-app/lib/test/modules + /my-app/src + /my-app/src/bld + /my-app/src/bld/java + /my-app/src/bld/java/com + /my-app/src/bld/java/com/example + /my-app/src/bld/java/com/example/MyAppBuild\\.java + /my-app/src/bld/resources + /my-app/src/main + /my-app/src/main/java + /my-app/src/main/java/com + /my-app/src/main/java/com/example + /my-app/src/main/java/com/example/MyAppSite\\.java + /my-app/src/main/java/com/example/MyAppSiteUber\\.java + /my-app/src/main/resources + /my-app/src/main/resources/templates + /my-app/src/main/resources/templates/hello\\.html + /my-app/src/main/webapp + /my-app/src/main/webapp/WEB-INF + /my-app/src/main/webapp/WEB-INF/web\\.xml + /my-app/src/main/webapp/css + /my-app/src/main/webapp/css/style\\.css + /my-app/src/test + /my-app/src/test/java + /my-app/src/test/java/com + /my-app/src/test/java/com/example + /my-app/src/test/java/com/example/MyAppTest\\.java + /my-app/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); var run_operation = new RunOperation().fromProject(create_operation.project()); var executor = Executors.newSingleThreadScheduledExecutor(); @@ -578,7 +581,7 @@ public class TestCreateRife2Operation { assertThrows(ExitStatusException.class, run_operation::execute); Thread.sleep(2000); - assertTrue(check_result.toString().contains("

Hello World Myapp

"), check_result.toString()); + assertTrue(check_result.toString().contains("

Hello World My-app

"), check_result.toString()); } finally { FileUtils.deleteDirectory(tmp); } @@ -592,7 +595,8 @@ public class TestCreateRife2Operation { var create_operation = new CreateRife2Operation() .workDirectory(tmp) .packageName("com.example") - .projectName("myapp") + .projectName("my-app") + .baseName("MyApp") .downloadDependencies(true); create_operation.execute(); @@ -620,123 +624,123 @@ public class TestCreateRife2Operation { compile_operation.execute(); assertTrue(compile_operation.diagnostics().isEmpty()); assertTrue(Pattern.compile(""" - /myapp - /myapp/\\.gitignore - /myapp/\\.idea - /myapp/\\.idea/app\\.iml - /myapp/\\.idea/bld\\.iml - /myapp/\\.idea/libraries - /myapp/\\.idea/libraries/bld\\.xml - /myapp/\\.idea/libraries/compile\\.xml - /myapp/\\.idea/libraries/runtime\\.xml - /myapp/\\.idea/libraries/standalone\\.xml - /myapp/\\.idea/libraries/test\\.xml - /myapp/\\.idea/misc\\.xml - /myapp/\\.idea/modules\\.xml - /myapp/\\.idea/runConfigurations - /myapp/\\.idea/runConfigurations/Run Main\\.xml - /myapp/\\.idea/runConfigurations/Run Tests\\.xml - /myapp/\\.vscode - /myapp/\\.vscode/launch\\.json - /myapp/\\.vscode/settings\\.json - /myapp/bld - /myapp/bld\\.bat - /myapp/build - /myapp/build/main - /myapp/build/main/com - /myapp/build/main/com/example - /myapp/build/main/com/example/MyappSite\\.class - /myapp/build/main/com/example/MyappSiteUber\\.class - /myapp/build/test - /myapp/build/test/com - /myapp/build/test/com/example - /myapp/build/test/com/example/MyappTest\\.class - /myapp/lib - /myapp/lib/bld - /myapp/lib/bld/bld-wrapper\\.jar - /myapp/lib/bld/bld-wrapper\\.properties - /myapp/lib/compile - /myapp/lib/compile/modules - /myapp/lib/local_compile - /myapp/lib/local_compile/rife2-.*-sources\\.jar - /myapp/lib/local_compile/rife2-.*\\.jar - /myapp/lib/local_standalone - /myapp/lib/local_standalone/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar - /myapp/lib/local_standalone/jakarta\\.servlet-api-6\\.0\\.0\\.jar - /myapp/lib/local_standalone/jetty-ee10-servlet-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-ee10-servlet-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-http-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-http-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-io-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-io-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-security-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-security-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-server-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-server-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-session-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-session-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/jetty-util-12\\.0\\.12-sources\\.jar - /myapp/lib/local_standalone/jetty-util-12\\.0\\.12\\.jar - /myapp/lib/local_standalone/slf4j-api-2\\.0\\.13-sources\\.jar - /myapp/lib/local_standalone/slf4j-api-2\\.0\\.13\\.jar - /myapp/lib/local_standalone/slf4j-simple-2\\.0\\.13-sources\\.jar - /myapp/lib/local_standalone/slf4j-simple-2\\.0\\.13\\.jar - /myapp/lib/local_test - /myapp/lib/local_test/apiguardian-api-1\\.1\\.2-sources\\.jar - /myapp/lib/local_test/apiguardian-api-1\\.1\\.2\\.jar - /myapp/lib/local_test/jsoup-1\\.18\\.1-sources\\.jar - /myapp/lib/local_test/jsoup-1\\.18\\.1\\.jar - /myapp/lib/local_test/junit-jupiter-5\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-jupiter-5\\.11\\.0\\.jar - /myapp/lib/local_test/junit-jupiter-api-5\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-jupiter-api-5\\.11\\.0\\.jar - /myapp/lib/local_test/junit-jupiter-engine-5\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-jupiter-engine-5\\.11\\.0\\.jar - /myapp/lib/local_test/junit-jupiter-params-5\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-jupiter-params-5\\.11\\.0\\.jar - /myapp/lib/local_test/junit-platform-commons-1\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-platform-commons-1\\.11\\.0\\.jar - /myapp/lib/local_test/junit-platform-console-standalone-1\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-platform-console-standalone-1\\.11\\.0\\.jar - /myapp/lib/local_test/junit-platform-engine-1\\.11\\.0-sources\\.jar - /myapp/lib/local_test/junit-platform-engine-1\\.11\\.0\\.jar - /myapp/lib/local_test/opentest4j-1\\.3\\.0-sources\\.jar - /myapp/lib/local_test/opentest4j-1\\.3\\.0\\.jar - /myapp/lib/provided - /myapp/lib/provided/modules - /myapp/lib/runtime - /myapp/lib/runtime/modules - /myapp/lib/standalone - /myapp/lib/standalone/modules - /myapp/lib/test - /myapp/lib/test/modules - /myapp/src - /myapp/src/bld - /myapp/src/bld/java - /myapp/src/bld/java/com - /myapp/src/bld/java/com/example - /myapp/src/bld/java/com/example/MyappBuild\\.java - /myapp/src/bld/resources - /myapp/src/main - /myapp/src/main/java - /myapp/src/main/java/com - /myapp/src/main/java/com/example - /myapp/src/main/java/com/example/MyappSite\\.java - /myapp/src/main/java/com/example/MyappSiteUber\\.java - /myapp/src/main/resources - /myapp/src/main/resources/templates - /myapp/src/main/resources/templates/hello\\.html - /myapp/src/main/webapp - /myapp/src/main/webapp/WEB-INF - /myapp/src/main/webapp/WEB-INF/web\\.xml - /myapp/src/main/webapp/css - /myapp/src/main/webapp/css/style\\.css - /myapp/src/test - /myapp/src/test/java - /myapp/src/test/java/com - /myapp/src/test/java/com/example - /myapp/src/test/java/com/example/MyappTest\\.java - /myapp/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); + /my-app + /my-app/\\.gitignore + /my-app/\\.idea + /my-app/\\.idea/app\\.iml + /my-app/\\.idea/bld\\.iml + /my-app/\\.idea/libraries + /my-app/\\.idea/libraries/bld\\.xml + /my-app/\\.idea/libraries/compile\\.xml + /my-app/\\.idea/libraries/runtime\\.xml + /my-app/\\.idea/libraries/standalone\\.xml + /my-app/\\.idea/libraries/test\\.xml + /my-app/\\.idea/misc\\.xml + /my-app/\\.idea/modules\\.xml + /my-app/\\.idea/runConfigurations + /my-app/\\.idea/runConfigurations/Run Main\\.xml + /my-app/\\.idea/runConfigurations/Run Tests\\.xml + /my-app/\\.vscode + /my-app/\\.vscode/launch\\.json + /my-app/\\.vscode/settings\\.json + /my-app/bld + /my-app/bld\\.bat + /my-app/build + /my-app/build/main + /my-app/build/main/com + /my-app/build/main/com/example + /my-app/build/main/com/example/MyAppSite\\.class + /my-app/build/main/com/example/MyAppSiteUber\\.class + /my-app/build/test + /my-app/build/test/com + /my-app/build/test/com/example + /my-app/build/test/com/example/MyAppTest\\.class + /my-app/lib + /my-app/lib/bld + /my-app/lib/bld/bld-wrapper\\.jar + /my-app/lib/bld/bld-wrapper\\.properties + /my-app/lib/compile + /my-app/lib/compile/modules + /my-app/lib/local_compile + /my-app/lib/local_compile/rife2-.*-sources\\.jar + /my-app/lib/local_compile/rife2-.*\\.jar + /my-app/lib/local_standalone + /my-app/lib/local_standalone/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar + /my-app/lib/local_standalone/jakarta\\.servlet-api-6\\.0\\.0\\.jar + /my-app/lib/local_standalone/jetty-ee10-servlet-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-ee10-servlet-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-http-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-http-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-io-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-io-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-security-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-security-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-server-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-server-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-session-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-session-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/jetty-util-12\\.0\\.12-sources\\.jar + /my-app/lib/local_standalone/jetty-util-12\\.0\\.12\\.jar + /my-app/lib/local_standalone/slf4j-api-2\\.0\\.13-sources\\.jar + /my-app/lib/local_standalone/slf4j-api-2\\.0\\.13\\.jar + /my-app/lib/local_standalone/slf4j-simple-2\\.0\\.13-sources\\.jar + /my-app/lib/local_standalone/slf4j-simple-2\\.0\\.13\\.jar + /my-app/lib/local_test + /my-app/lib/local_test/apiguardian-api-1\\.1\\.2-sources\\.jar + /my-app/lib/local_test/apiguardian-api-1\\.1\\.2\\.jar + /my-app/lib/local_test/jsoup-1\\.18\\.1-sources\\.jar + /my-app/lib/local_test/jsoup-1\\.18\\.1\\.jar + /my-app/lib/local_test/junit-jupiter-5\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-jupiter-5\\.11\\.0\\.jar + /my-app/lib/local_test/junit-jupiter-api-5\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-jupiter-api-5\\.11\\.0\\.jar + /my-app/lib/local_test/junit-jupiter-engine-5\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-jupiter-engine-5\\.11\\.0\\.jar + /my-app/lib/local_test/junit-jupiter-params-5\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-jupiter-params-5\\.11\\.0\\.jar + /my-app/lib/local_test/junit-platform-commons-1\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-platform-commons-1\\.11\\.0\\.jar + /my-app/lib/local_test/junit-platform-console-standalone-1\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-platform-console-standalone-1\\.11\\.0\\.jar + /my-app/lib/local_test/junit-platform-engine-1\\.11\\.0-sources\\.jar + /my-app/lib/local_test/junit-platform-engine-1\\.11\\.0\\.jar + /my-app/lib/local_test/opentest4j-1\\.3\\.0-sources\\.jar + /my-app/lib/local_test/opentest4j-1\\.3\\.0\\.jar + /my-app/lib/provided + /my-app/lib/provided/modules + /my-app/lib/runtime + /my-app/lib/runtime/modules + /my-app/lib/standalone + /my-app/lib/standalone/modules + /my-app/lib/test + /my-app/lib/test/modules + /my-app/src + /my-app/src/bld + /my-app/src/bld/java + /my-app/src/bld/java/com + /my-app/src/bld/java/com/example + /my-app/src/bld/java/com/example/MyAppBuild\\.java + /my-app/src/bld/resources + /my-app/src/main + /my-app/src/main/java + /my-app/src/main/java/com + /my-app/src/main/java/com/example + /my-app/src/main/java/com/example/MyAppSite\\.java + /my-app/src/main/java/com/example/MyAppSiteUber\\.java + /my-app/src/main/resources + /my-app/src/main/resources/templates + /my-app/src/main/resources/templates/hello\\.html + /my-app/src/main/webapp + /my-app/src/main/webapp/WEB-INF + /my-app/src/main/webapp/WEB-INF/web\\.xml + /my-app/src/main/webapp/css + /my-app/src/main/webapp/css/style\\.css + /my-app/src/test + /my-app/src/test/java + /my-app/src/test/java/com + /my-app/src/test/java/com/example + /my-app/src/test/java/com/example/MyAppTest\\.java + /my-app/src/test/resources""").matcher(FileUtils.generateDirectoryListing(tmp)).matches()); var run_operation = new RunOperation().fromProject(create_operation.project()); var executor = Executors.newSingleThreadScheduledExecutor(); @@ -753,7 +757,7 @@ public class TestCreateRife2Operation { assertThrows(ExitStatusException.class, run_operation::execute); Thread.sleep(2000); - assertTrue(check_result.toString().contains("

Hello World Myapp

")); + assertTrue(check_result.toString().contains("

Hello World My-app

")); } finally { FileUtils.deleteDirectory(tmp); } diff --git a/src/test/java/rife/bld/operations/TestPublishOperation.java b/src/test/java/rife/bld/operations/TestPublishOperation.java index 62819ce..8e6ec47 100644 --- a/src/test/java/rife/bld/operations/TestPublishOperation.java +++ b/src/test/java/rife/bld/operations/TestPublishOperation.java @@ -51,8 +51,8 @@ public class TestPublishOperation { } static class PublishProject extends AppProjectBlueprint { - public PublishProject(File work, String packageName, String projectName, VersionNumber versionNumber) { - super(work, packageName, projectName, versionNumber); + public PublishProject(File work, String packageName, String projectName, String baseName, VersionNumber versionNumber) { + super(work, packageName, projectName, baseName, versionNumber); javaRelease = 17; } } @@ -209,7 +209,7 @@ public class TestPublishOperation { // created an updated publication var create_operation2 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 0, 0)); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 0, 0)); } } .workDirectory(tmp2) @@ -342,7 +342,7 @@ public class TestPublishOperation { // created an updated publication var create_operation2 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 0, 0)); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 0, 0)); } } .workDirectory(tmp2) @@ -419,7 +419,7 @@ public class TestPublishOperation { // create a first publication var create_operation1 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); } } .workDirectory(tmp1) @@ -496,7 +496,7 @@ public class TestPublishOperation { // created an updated publication var create_operation2 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); } } .workDirectory(tmp2) @@ -589,7 +589,7 @@ public class TestPublishOperation { // create a first publication var create_operation1 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); } } .workDirectory(tmp1) @@ -645,7 +645,7 @@ public class TestPublishOperation { // created an updated publication var create_operation2 = new CreateAppOperation() { protected Project createProjectBlueprint() { - return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); + return new PublishProject(new File(workDirectory(), projectName()), packageName(), projectName(), baseName(), new VersionNumber(1, 2, 3, "SNAPSHOT")); } } .workDirectory(tmp2)