···11-/*
22- * This file is part of <project name>, licensed under the MIT License.
33- *
44- * Copyright (c) 2026 nayrid
55- *
66- * Permission is hereby granted, free of charge, to any person obtaining a copy
77- * of this software and associated documentation files (the "Software"), to deal
88- * in the Software without restriction, including without limitation the rights
99- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1010- * copies of the Software, and to permit persons to whom the Software is
1111- * furnished to do so, subject to the following conditions:
1212- *
1313- * The above copyright notice and this permission notice shall be included in all
1414- * copies or substantial portions of the Software.
1515- *
1616- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1717- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1818- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1919- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2020- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2121- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222- * SOFTWARE.
2323- */
2424-package com.example.template;
2525-2626-import static org.junit.jupiter.api.Assertions.assertTrue;
2727-2828-import org.jspecify.annotations.NullMarked;
2929-import org.junit.jupiter.api.Test;
3030-3131-@NullMarked
3232-class TemplateTest {
3333-3434- @Test
3535- void testTemplate() {
3636- assertTrue(true);
3737- }
3838-3939-}
+1-3
build-logic/src/main/kotlin/extensions.kt
···1111 * Relocate a package into a project-scoped namespace.
1212 */
1313fun ShadowJar.relocateDependency(pkg: String) {
1414- val groupId = project.group.toString().ifBlank { "com.example" }
1515- val projectId = project.name.ifBlank { "template" }
1616- relocate(pkg, "$groupId.$projectId.libs.$pkg")
1414+ relocate(pkg, "${project.group}.${project.name}.libs.$pkg")
1715}
···11MIT License
2233-Copyright (c) 2026 nayrid
33+Copyright (c) {{COPYRIGHT_YEAR}} {{AUTHOR}}
4455Permission is hereby granted, free of charge, to any person obtaining a copy
66of this software and associated documentation files (the "Software"), to deal
+2-2
license_header.txt
···11-This file is part of <project name>, licensed under the MIT License.
11+This file is part of {{PROJECT_NAME}}, licensed under the MIT License.
2233-Copyright (c) 2026 nayrid
33+Copyright (c) {{COPYRIGHT_YEAR}} {{AUTHOR}}
4455Permission is hereby granted, free of charge, to any person obtaining a copy
66of this software and associated documentation files (the "Software"), to deal
+1-1
readme.md
···1111Run the rename script to set your group, project name, and Java package:
12121313```bash
1414-./.scripts/rename-template.sh -g "com.acme" -p "my-project"
1414+./.scripts/rename-template.sh -g "com.acme" -p "my-project" -n "acme-snapshots" -s "https://repo.acme.com/snapshots" -N "acme-releases" -r "https://repo.acme.com/releases" -a "Acme, Inc." -y "2026"
1515```
16161717## Checkstyle
···11+/*
22+ * This file is part of <project name>, licensed under the MIT License.
33+ *
44+ * Copyright (c) 2026 nayrid
55+ *
66+ * Permission is hereby granted, free of charge, to any person obtaining a copy
77+ * of this software and associated documentation files (the "Software"), to deal
88+ * in the Software without restriction, including without limitation the rights
99+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1010+ * copies of the Software, and to permit persons to whom the Software is
1111+ * furnished to do so, subject to the following conditions:
1212+ *
1313+ * The above copyright notice and this permission notice shall be included in all
1414+ * copies or substantial portions of the Software.
1515+ *
1616+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1717+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1818+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1919+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2020+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2121+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222+ * SOFTWARE.
2323+ */
2424+package {{PACKAGE_NAME}};
2525+2626+import static org.junit.jupiter.api.Assertions.assertTrue;
2727+2828+import org.jspecify.annotations.NullMarked;
2929+import org.junit.jupiter.api.Test;
3030+3131+@NullMarked
3232+class TemplateTest {
3333+3434+ @Test
3535+ void testTemplate() {
3636+ assertTrue(true);
3737+ }
3838+3939+}