Nokee Release Notes
The Nokee team is pleased to announce an important milestone in native development with Gradle.
This release focuses on adding plugins for building applications and libraries in C, C++, Objective-C, Objective-C++, and Swift. The experimental iOS application building plugin implemented in Swift joins the Nokee plugin family. The Xcode IDE plugin supports all the new native plugins. Additional conveniences made its way into the Java Native Interface (JNI) Library plugin. Finally, the first version of the Gradle Toolbox plugins became available, allowing Nokee to develop high-quality Gradle plugins.
Read the announcement blog to learn more about the changes around the configuration model of Nokee.
Getting Started
To use the Nokee plugins in Gradle, copy the following code to the settings script of your project, then apply any of the Nokee plugins to your build using the plugins DSL block:
pluginManagement {
repositories {
gradlePluginPortal()
maven {
url = uri('https://repo.nokee.dev/snapshot')
}
}
def nokeeVersion = '0.4.0'
resolutionStrategy {
eachPlugin {
if (requested.id.id.startsWith('dev.nokee.')) {
useModule("${requested.id.id}:${requested.id.id}.gradle.plugin:${nokeeVersion}")
}
}
}
}
pluginManagement {
repositories {
gradlePluginPortal()
maven {
url = uri("https://repo.nokee.dev/snapshot")
}
}
val nokeeVersion = "0.4.0"
resolutionStrategy {
eachPlugin {
if (requested.id.id.startsWith("dev.nokee.")) {
useModule("${requested.id.id}:${requested.id.id}.gradle.plugin:${nokeeVersion}")
}
}
}
}
Building native applications/libraries plugins
Ten new native plugins join the Nokee distribution to support building native application and native library implemented in C, C++, Objective-C, Objective-C++, and Swift. These new plugins are similar in features and will improve them over the next releases.
Experimental iOS application plugin for Swift
Support for building iOS application implemented in Swift is available as an experimental plugin. It offers the same feature as its counter-part for building iOS applications implemented in Objective-C. The iOS plugins are still severely limited in features due to the strategic goal for this release. The following releases will start addressing some production features needed by iOS developers.
Xcode IDE support for all new plugins
Xcode IDE plugin supports each of the new plugins. Code editing, compilation, debugging, code completion, and jump to symbol features are available when applying the Xcode IDE plugin with any native plugins.
New APIs for JNI library
Starting with this release, the plugin registers all JNI library variants regardless of whether they are buildable. This improves the user experience for all use cases and can potentially break your build.
New APIs introduced for handling pre-built native binaries scenarios. It is now possible to always use pre-built binaries, conditionally build from the source when pre-built binaries are not available, or even download pre-built binaries when the native source isn’t buildable on the local machine.
Gradle Toolbox plugins
dev.gradleplugins.java-gradle-plugin
-
Provides support for developing Gradle plugin implemented in Java.
dev.gradleplugins.groovy-gradle-plugin
-
Provides support for developing Gradle plugin implemented in Groovy.
dev.gradleplugins.gradle-plugin-development
-
Provides additional support for developing Gradle plugin-related projects.
dev.gradleplugins.gradle-plugin-unit-test
-
Provides support for unit testing Gradle plugins.
dev.gradleplugins.gradle-plugin-functional-test
-
Provides support for functional testing Gradle plugins.
As a companion to the plugins, a dedicated chapter, samples, and plugin references are available to help plugin authors to get started.
Reporting Problems
If you find a problem with any of the plugins, please open an issue on GitHub. If you’re not sure you’re encountering a bug, please use the Gradle user forum or the Gradle Community Slack.