beryx / badass-jar-plugin Goto Github PK
View Code? Open in Web Editor NEWCreate modular jars that target a Java release before 9
Home Page: https://github.com/beryx/badass-jar
License: Apache License 2.0
Create modular jars that target a Java release before 9
Home Page: https://github.com/beryx/badass-jar
License: Apache License 2.0
The README says:
If the plugin detects that at least one of sourceCompatibility and targetCompatibility has an effective value >= 9, it automatically applies the gradle-modules-plugin, which adds support for the JPMS.
Is it possible to add an option to not apply the gradle-modules-plugin, when using Gradle 6.4 or later? That would possibly make this plugin even lighter-weight and hopefully reduce plugin interaction/compatibility issues in the future.
Hey,
I just learned from @aalmiray about this plug-in and your blog post at https://beryx.org/blog/2018-11-21-/modular-jars-targeted-at-pre-java-9/. Thanks a lot for the reference to ModiTect! Having a Gradle plug-in for ModiTect has been on the wishlist for a while, and @aalmiray was just recently expressing interest towards contributing to such effort. Seeing your plug-in here, we were wondering whether you'd perhaps be interested in creating a joint effort under the ModiTect umbrella?
Cheers,
Gunnar
I could not find the gradle plugin for 2.0.0 in plugins.gradle.org
I looked here:
https://plugins.gradle.org/m2/gradle/plugin/org/beryx/badass-jar/
...and only saw up to release 1.2.0.
Took me a while to figure out that not just the version number but also the name changed
from gradle.plugin.org.beryx:badass-jar:1.2.0
to org.beryx:badass-jar:2.0.0
.
That may be good to mention in the README somewhere. :-)
Does this plugin support setting module version information, like jar --create --file ... --module-version X
?
PS: Installing and applying this plugin here: jqwik-team/jqwik#243
Is it failing due to (removed?) multiRelease
property?
https://github.com/jlink/jqwik/blob/4f3e648a1a3208f6aa888809b852e6de2e19a18c/api/build.gradle#L6-L9
Using the badass-jar-plugin
, there are two paths you can go by:
Have the "default view" of the project be a Java 9+, modular world and in a full/release build use a command-line flag to tell the plugin to create JDK 8 versions of the target JARs (i.e. src/main/java/module-info.java
)
Have the "default view" of the project be Java 8, non-modular and use the plugin to add module-info
to the target JARs. (i.e. src/main/module/module-info.java
)
The advantage to (1) is that your IDE can validate your module-info
as you develop (this can be especially important in multi-project builds.) The advantage to (2) is that your IDE can validate your use of the Java API as you develop.
Personally, I'm just beginning to experiment with and understand these trade-offs and I only use IDEA on a regular basis, so even as I do learn more I'll only understand how it works in one IDE.
It would be nice if there was a place to document some of these issues -- not sure if the README
is the right place.
2.0.0-rc-5 has been working well for me and no-one else has reported an issue since November 2021. Is it time to make a final release?
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.