From 6fc14948033a856a5af02157612353e51f763223 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Wed, 3 Jul 2024 12:50:42 -0400 Subject: [PATCH] Adding the ability to build with the maven version of modern docking by running 'gradlew build -PuseMavenVersion=true'. Fixing an issue with module-info.java when building the repo straight from GitHub without the package rename. Modules don't like empty or non-existent packages. A new copy of module-info.java will be copied when building. --- demo-multi-app/build.gradle | 10 +++++-- demo-single-app/build.gradle | 10 +++++-- docking-api/src/module-info.java | 10 ------- docking-multi-app/build.gradle | 7 ++++- docking-single-app/build.gradle | 7 ++++- docking-ui/build.gradle | 7 ++++- package-renamer/docking-api-module-info.java | 29 +++++++++++++++++++ .../docking-multi-app-module-info.java | 10 +++++++ .../docking-single-app-module-info.java | 10 +++++++ package-renamer/docking-ui-module-info.java | 11 +++++++ package-renamer/src/Main.java | 5 ++++ 11 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 package-renamer/docking-api-module-info.java create mode 100644 package-renamer/docking-multi-app-module-info.java create mode 100644 package-renamer/docking-single-app-module-info.java create mode 100644 package-renamer/docking-ui-module-info.java diff --git a/demo-multi-app/build.gradle b/demo-multi-app/build.gradle index 2c3efcc4..cf5286fa 100644 --- a/demo-multi-app/build.gradle +++ b/demo-multi-app/build.gradle @@ -20,8 +20,14 @@ sourceSets.test.java.srcDirs = ['test'] sourceSets.main.resources.srcDirs = ['resources'] dependencies { - implementation project(':docking-ui') - implementation project(':docking-multi-app') + if (project.hasProperty("useMavenVersion")) { + implementation 'io.github.andrewauclair:modern-docking-ui:' + version + implementation 'io.github.andrewauclair:modern-docking-multi-app:' + version + } + else { + implementation project(':docking-ui') + implementation project(':docking-multi-app') + } implementation 'com.formdev:flatlaf:3.4.1' implementation 'com.formdev:flatlaf-extras:3.4.1' diff --git a/demo-single-app/build.gradle b/demo-single-app/build.gradle index 50d32566..60367dc3 100644 --- a/demo-single-app/build.gradle +++ b/demo-single-app/build.gradle @@ -20,8 +20,14 @@ sourceSets.test.java.srcDirs = ['test'] sourceSets.main.resources.srcDirs = ['resources'] dependencies { - implementation project(':docking-ui') - implementation project(':docking-single-app') + if (project.hasProperty("useMavenVersion")) { + implementation 'io.github.andrewauclair:modern-docking-ui:' + version + implementation 'io.github.andrewauclair:modern-docking-single-app:' + version + } + else { + implementation project(':docking-ui') + implementation project(':docking-single-app') + } implementation 'com.formdev:flatlaf:3.4.1' implementation 'com.formdev:flatlaf-extras:3.4.1' diff --git a/docking-api/src/module-info.java b/docking-api/src/module-info.java index c3d2a0e3..8483f30c 100644 --- a/docking-api/src/module-info.java +++ b/docking-api/src/module-info.java @@ -14,16 +14,6 @@ exports ModernDocking.ui; exports ModernDocking.api; - exports io.github.andrewauclair.moderndocking; - exports io.github.andrewauclair.moderndocking.event; - exports io.github.andrewauclair.moderndocking.exception; - exports io.github.andrewauclair.moderndocking.layouts; - exports io.github.andrewauclair.moderndocking.persist; - exports io.github.andrewauclair.moderndocking.settings; - exports io.github.andrewauclair.moderndocking.ui; - exports io.github.andrewauclair.moderndocking.api; - // export our internal package only to our other extension modules exports ModernDocking.internal to modern_docking.ui_ext, modern_docking.single_app, modern_docking.multi_app; - exports io.github.andrewauclair.moderndocking.internal to modern_docking.ui_ext, modern_docking.single_app, modern_docking.multi_app; } \ No newline at end of file diff --git a/docking-multi-app/build.gradle b/docking-multi-app/build.gradle index 02d93190..d6df631a 100644 --- a/docking-multi-app/build.gradle +++ b/docking-multi-app/build.gradle @@ -27,7 +27,12 @@ base { // NOTE: do not add new dependencies here, Modern Docking is a zero-dependency library dependencies { - api project(':docking-api') + if (project.hasProperty("useMavenVersion")) { + implementation 'io.github.andrewauclair:modern-docking-api:' + version + } + else { + api project(':docking-api') + } } java { diff --git a/docking-single-app/build.gradle b/docking-single-app/build.gradle index 16adaa9a..e2854249 100644 --- a/docking-single-app/build.gradle +++ b/docking-single-app/build.gradle @@ -27,7 +27,12 @@ base { // NOTE: do not add new dependencies here, Modern Docking is a zero-dependency library dependencies { - api project(':docking-api') + if (project.hasProperty("useMavenVersion")) { + implementation 'io.github.andrewauclair:modern-docking-api:' + version + } + else { + api project(':docking-api') + } } java { diff --git a/docking-ui/build.gradle b/docking-ui/build.gradle index 73b353f5..936f1146 100755 --- a/docking-ui/build.gradle +++ b/docking-ui/build.gradle @@ -27,7 +27,12 @@ base { } dependencies { - api project(':docking-api') + if (project.hasProperty("useMavenVersion")) { + implementation 'io.github.andrewauclair:modern-docking-api:' + version + } + else { + api project(':docking-api') + } implementation 'com.formdev:flatlaf:3.4.1' implementation 'com.formdev:flatlaf-extras:3.4.1' diff --git a/package-renamer/docking-api-module-info.java b/package-renamer/docking-api-module-info.java new file mode 100644 index 00000000..c3d2a0e3 --- /dev/null +++ b/package-renamer/docking-api-module-info.java @@ -0,0 +1,29 @@ +/** + * Module for the Modern Docking framework + */ +module modern_docking.api { + requires java.desktop; + requires java.logging; + + exports ModernDocking; + exports ModernDocking.event; + exports ModernDocking.exception; + exports ModernDocking.layouts; + exports ModernDocking.persist; + exports ModernDocking.settings; + exports ModernDocking.ui; + exports ModernDocking.api; + + exports io.github.andrewauclair.moderndocking; + exports io.github.andrewauclair.moderndocking.event; + exports io.github.andrewauclair.moderndocking.exception; + exports io.github.andrewauclair.moderndocking.layouts; + exports io.github.andrewauclair.moderndocking.persist; + exports io.github.andrewauclair.moderndocking.settings; + exports io.github.andrewauclair.moderndocking.ui; + exports io.github.andrewauclair.moderndocking.api; + + // export our internal package only to our other extension modules + exports ModernDocking.internal to modern_docking.ui_ext, modern_docking.single_app, modern_docking.multi_app; + exports io.github.andrewauclair.moderndocking.internal to modern_docking.ui_ext, modern_docking.single_app, modern_docking.multi_app; +} \ No newline at end of file diff --git a/package-renamer/docking-multi-app-module-info.java b/package-renamer/docking-multi-app-module-info.java new file mode 100644 index 00000000..eff3d889 --- /dev/null +++ b/package-renamer/docking-multi-app-module-info.java @@ -0,0 +1,10 @@ +/** + * Module for the Modern Docking framework + */ +module modern_docking.multi_app { + requires modern_docking.api; + requires java.desktop; + + exports ModernDocking.app; + exports io.github.andrewauclair.moderndocking.app; +} \ No newline at end of file diff --git a/package-renamer/docking-single-app-module-info.java b/package-renamer/docking-single-app-module-info.java new file mode 100644 index 00000000..71855e82 --- /dev/null +++ b/package-renamer/docking-single-app-module-info.java @@ -0,0 +1,10 @@ +/** + * Module for the Modern Docking framework + */ +module modern_docking.single_app { + requires modern_docking.api; + requires java.desktop; + + exports ModernDocking.app; + exports io.github.andrewauclair.moderndocking.app; +} \ No newline at end of file diff --git a/package-renamer/docking-ui-module-info.java b/package-renamer/docking-ui-module-info.java new file mode 100644 index 00000000..64c90faf --- /dev/null +++ b/package-renamer/docking-ui-module-info.java @@ -0,0 +1,11 @@ +/** + * Module for the Modern Docking framework + */ +module modern_docking.ui_ext { + requires modern_docking.api; + requires java.desktop; + requires com.formdev.flatlaf.extras; + + exports ModernDocking.ext.ui; + exports io.github.andrewauclair.moderndocking.ext.ui; +} \ No newline at end of file diff --git a/package-renamer/src/Main.java b/package-renamer/src/Main.java index ed9d1f53..5a9fdf07 100644 --- a/package-renamer/src/Main.java +++ b/package-renamer/src/Main.java @@ -141,5 +141,10 @@ public static void main(String[] args) throws IOException { renameFolders(new File("docking-single-app/src")); renameFolders(new File("docking-multi-app/src")); renameFolders(new File("docking-ui/src")); + + FileUtils.copyFile(new File("package-renamer/docking-api-module-info.java"), new File("docking-api/src/module-info.java")); + FileUtils.copyFile(new File("package-renamer/docking-ui-module-info.java"), new File("docking-ui/src/module-info.java")); + FileUtils.copyFile(new File("package-renamer/docking-single-app-module-info.java"), new File("docking-single-app/src/module-info.java")); + FileUtils.copyFile(new File("package-renamer/docking-multi-app-module-info.java"), new File("docking-multi-app/src/module-info.java")); } } \ No newline at end of file