missinglink
Build time tool for detecting link problems in java projects (by spotify)
sbt-missinglink
An sbt plugin for missinglink (by scalacenter)
missinglink | sbt-missinglink | |
---|---|---|
5 | 5 | |
148 | 134 | |
-0.7% | 0.0% | |
7.1 | 2.8 | |
3 months ago | 9 months ago | |
Java | Scala | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
missinglink
Posts with mentions or reviews of missinglink.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-03-31.
-
A Scala rant
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?
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.
sbt-missinglink
Posts with mentions or reviews of sbt-missinglink.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-03-31.
-
Scala isn't fun anymore
And then there's sbt-missinglink, which can check that all the libraries that you're using in your application are compatible with each other (that one doesn't link to a missing class or method -- do you see? :) ). It prevents NoClassDefFoundError/NoSuchMethodError from happening at runtime.
- A Scala rant
-
sbt-missinglink 0.3.2 has been released: Multi-Release JARs and concurrency
sbt-missinglink can analyze all your projects concurrently. It can take a lot of memory, so you may want to limit the degree of concurrency via missinglinkConflictsTag
-
Preventing version conflicts with versionScheme (improving the Scala library ecosystem)
In our company, we've had good experience with sbt-missinglink. It's an sbt plugin made by Scala Center that wraps the MissingLink tool. It solves the problem the linked article describes, but does so in a more fundamental way. Instead of looking at versions of packages, it goes through all the class files and analyses possible "binary" conflicts.
What are some alternatives?
When comparing missinglink and sbt-missinglink you can also consider the following projects:
bnd - Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.
soot - Soot - A Java optimization framework
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
cloud-opensource-java - Tools for detecting and avoiding linkage errors in GCP open source projects
Apache Spark - Apache Spark - A unified analytics engine for large-scale data processing