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'
