teamdev-ip / jxbrowser-gradle-plugin Goto Github PK
View Code? Open in Web Editor NEWGradle plugin that allows adding JxBrowser deps into a project.
Gradle plugin that allows adding JxBrowser deps into a project.
Please have a look at kotlin-gradle-plugin
template and either adopt it as a whole or pick up missing things from their build.
Now it's com.teamdev.jxbrowser.gradle
. The .gradle
part is redundant.
At the moment, our DSL provides some matters on defining the Maven repository to use:
jxbrowser {
// The JxBrowser version. A mandatory field.
version = "7.24"
// The location of JxBrowser repository to use. It's either the US or Europe.
// By default, it's the US.
repositoryLocation = Repository.US
// A custom Maven repository.
// If set, this field overrides `repositoryLocation`.
repositoryUrl = "https://my.custom.repository"
// ...
}
It looks a bit messy, since repositoryUrl
overrides repositoryLocation
โ which is not too obvious, especially, if you-as-a-user apply it to your project without any comments, and then your teammates try to interpret it.
Let's make it more precise by leaving just a single repository
field. E.g.
jxbrowser {
// The JxBrowser version. A mandatory field.
version = "7.24"
// The location of JxBrowser repository to use. It's either the US or Europe.
// By default, it's the US.
repository = Repository.US
// Alternatively, it may point to a custom repo via its URL, as follows:
// repository = "https://my.custom.repository"
// ...
}
Since we are in Kotlin here, Repository
may become anything String
-friendly, like a typealias
.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
This repository currently has no open or pending branches.
.github/workflows/publish.yml
actions/checkout v4
actions/setup-java v3
.github/workflows/validate.yml
actions/checkout v4
actions/checkout v4
settings.gradle.kts
build.gradle.kts
org.jetbrains.kotlin.jvm 1.9.20
com.gradle.plugin-publish 1.2.1
org.jlleitschuh.gradle.ktlint 11.6.1
io.kotest:kotest-assertions-core 5.8.0
gradle/wrapper/gradle-wrapper.properties
gradle 8.4
Right now we have to specify plugin version like that:
plugins {
id("com.teamdev.jxbrowser") version "1.0.2"
}
Other plugins such as "java" don't require this:
plugins {
id("java")
}
We assume that if we don't specify the version, the latest stable version will be downloaded and used. This is the behavior we would like to have.
But right now, if we don't specify the version, we will get the following error:
* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.teamdev.jxbrowser'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:275)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$3(DefaultPluginRequestApplicator.java:200)
at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:212)
at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:206)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:198)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:114)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:103)
at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:44)
at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:220)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:388)
...
In terms of this task we need to find out why we have to specify the plugin version and find out a way to skip the version declaration to force Gradle use the latest version of our plugin.
We need to design and implement the approach that allows checking availability of the new stable Gradle versions and check compatibility of our plugin with it.
If our plugin is not compatible with the latest Gradle version, because of errors or warnings, then we should be somehow informed about this, so that developers can make the plugin compatible.
Once we support Compose Desktop in JxBrowser, we need to extend our plugin with one more artifact, e.g. jxbrowser-compose.jar
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.