This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/grails-intellij-plugin.git

commit 90a2685e0da195f748521bd51303861e1c6b5f42
Author: James Daugherty <[email protected]>
AuthorDate: Sat Jul 18 15:39:45 2026 -0400

    Add source distribution bootstrap
---
 .gitignore                       |  3 +++
 .sdkmanrc                        | 19 ++++++++++++++++
 INSTALL                          | 48 ++++++++++++++++++++++++++++++++++++++++
 gradle-bootstrap/build.gradle    | 46 ++++++++++++++++++++++++++++++++++++++
 gradle-bootstrap/settings.gradle | 19 ++++++++++++++++
 5 files changed, 135 insertions(+)

diff --git a/.gitignore b/.gitignore
index bc250d0..3a06720 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,6 @@
 **/build
 **/.gradle
 **/.intellijPlatform
+gradle-bootstrap/gradlew
+gradle-bootstrap/gradlew.bat
+gradle-bootstrap/gradle
diff --git a/.sdkmanrc b/.sdkmanrc
new file mode 100644
index 0000000..c806064
--- /dev/null
+++ b/.sdkmanrc
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Enable auto-env through the sdkman_auto_env config
+# Add key=value pairs of SDKs to use below
+java=21.0.7-librca
+gradle=9.3.1
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..bdbd43e
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,48 @@
+Apache Grails IntelliJ Plugin Installation Guide
+================================================
+
+This document covers building the Apache Grails IntelliJ Plugin from a source
+distribution. Most users should instead install the plugin from the JetBrains
+Marketplace inside IntelliJ IDEA.
+
+Requirements & Tooling Setup for Building
+-----------------------------------------
+Building requires a Java Development Kit (JDK) and Gradle 
(https://www.gradle.org).
+A configuration file, `.sdkmanrc`, for SDKMAN! (https://sdkman.io) exists in 
the
+source root with the recommended versions.
+
+If SDKMAN! is installed, select the tooling by running the following command at
+the source root:
+
+        sdk env install
+
+Otherwise, Gradle must be bootstrapped so that the correct version is used. The
+source distribution ships without the Gradle Wrapper jar (per ASF 
source-release
+policy), but it can be regenerated with any locally installed Gradle:
+
+        cd gradle-bootstrap
+        gradle bootstrap
+
+This pins the wrapper to the version in `.sdkmanrc` and installs `gradlew` at 
the
+source root. For the remaining commands: use `gradle` if tooling was installed
+with SDKMAN! or `./gradlew` if the wrapper was bootstrapped.
+
+Building
+--------
+Build the plugin distribution ZIP:
+
+        ./gradlew buildPlugin
+
+The ZIP is written to `build/distributions/` and can be installed in IntelliJ
+IDEA via Settings > Plugins > Install Plugin from Disk.
+
+Other useful tasks:
+
+        ./gradlew check          # compile and run tests
+        ./gradlew verifyPlugin   # IntelliJ Plugin Verifier
+        ./gradlew rat            # Apache RAT license audit
+        ./gradlew runIde         # launch a sandbox IDE with the plugin
+
+Note: the build downloads the IntelliJ Platform (IntelliJ IDEA Ultimate) and
+bundled plugins it compiles against; the first build requires network access 
and
+several gigabytes of disk space.
diff --git a/gradle-bootstrap/build.gradle b/gradle-bootstrap/build.gradle
new file mode 100644
index 0000000..db5bfd3
--- /dev/null
+++ b/gradle-bootstrap/build.gradle
@@ -0,0 +1,46 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    https://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+// Regenerates the Gradle Wrapper for the source distribution (which ships 
without
+// the wrapper jar, per ASF source-release policy). Run `gradle bootstrap` 
here with
+// any locally installed Gradle; the wrapper is pinned to the version in 
../.sdkmanrc.
+
+def props = new Properties()
+project.rootProject.layout.projectDirectory.file('../.sdkmanrc').asFile.withInputStream
 {
+    props.load(it)
+}
+tasks.withType(Wrapper).configureEach {
+    gradleVersion = props.gradle
+}
+
+defaultTasks 'bootstrap'
+tasks.register('bootstrap') {
+    dependsOn 'wrapper'
+    doLast {
+        ant.copy file: "${projectDir}/gradlew", todir: "${projectDir}/.."
+        ant.copy file: "${projectDir}/gradlew.bat", todir: "${projectDir}/.."
+        ant.copy(todir: "${projectDir}/../gradle/wrapper") {
+            fileset(dir: "${projectDir}/gradle/wrapper") {
+                include(name: 'gradle-wrapper.jar')
+                include(name: 'gradle-wrapper.properties')
+            }
+        }
+        ant.chmod(file: "${projectDir}/../gradlew", perm: '755')
+    }
+}
diff --git a/gradle-bootstrap/settings.gradle b/gradle-bootstrap/settings.gradle
new file mode 100644
index 0000000..9e94b68
--- /dev/null
+++ b/gradle-bootstrap/settings.gradle
@@ -0,0 +1,19 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    https://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+rootProject.name = 'gradle-bootstrap'

Reply via email to