bnd
missinglink
Our great sponsors
bnd | missinglink | |
---|---|---|
3 | 5 | |
522 | 142 | |
1.1% | 0.7% | |
9.8 | 7.9 | |
6 days ago | 9 days ago | |
Java | Java | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bnd
-
Is there any way to statically detect broken references in a set of Java class files?
It used to be that using OSGi was cumbersome, but these days most libraries have are OSGi-friendly and bnd makes it really simple to develop OSGi applications.
missinglink
-
A Scala rant
Kind of getting off topic but I agree with you that static analysis for JVM dependency linking is a really promising avenue. I hope we'll see more development in this area in the future. Have you seen https://github.com/spotify/missinglink ?
You can also use the upstream https://github.com/spotify/missinglink if you're using Maven instead of sbt.
-
Is there any way to statically detect broken references in a set of Java class files?
Spotify as a Maven plugin that tries to detect this. Spotify Missing link
There's been a recent release of missing-link with support for Mult-Release JARs and running analysis on multiple projects concurrently. More info here (applies not only to Scala/sbt, so it's worth linking it here): https://old.reddit.com/r/scala/comments/lxmi4w/sbtmissinglink_032_has_been_released_multirelease/
-
Preventing version conflicts with versionScheme (improving the Scala library ecosystem)
There are still some issues with MissingLink, like that it can't handle Multi-Release JARs (but that's being fixed I write) or that it uses thread-unsafe caches and so it can't be executed in parallel (and so it can take a long time to finish on big projects with many modules). But taken all together I swear by it. It has already saved us from runtime failures after deployment many times (it's easy to get incompatible versions when working on big projects with big number of dependencies). Instead, we get a red build in CI -- just anybody should expect for goodness sake when using a strongly-typed language like Scala.
What are some alternatives?
karaf - Mirror of Apache Karaf
QuickShell - QuickShell is an Eclipse plugin to use Java JShell inside the Eclipse IDE.
osgi-reactive - Reactive streams in OSGi as message bus
cloud-opensource-java - Tools for detecting and avoiding linkage errors in GCP open source projects
maven-dependency-versions-check-plugin - Maven plugin to find dependency version conflicts
formatter-maven-plugin - Formatter Maven Plugin
java-oo - Java Operator Overloading
gradle-s3-build-cache - An AWS S3 Gradle build cache implementation
red5-server - Red5 Server core
JavaPackager - :package: Gradle/Maven plugin to package Java applications as native Windows, MacOS, or Linux executables and create installers for them.
scan-gradle-plugin - Gradle plugin that scans the dependencies of a Gradle project using Sonatype platforms: OSS Index and Nexus IQ Server.