Why are there only platform-specific Maven artifacts?
Sam Carlberg
sam.carlberg at gmail.com
Fri Aug 24 21:23:20 UTC 2018
As I see it, providing only platform-specific artifacts makes it difficult
or impossible for third-party JavaFX libraries or frameworks to depend on
the JavaFX API and pass it along to consumers. Libraries don't care about
the platform-specific code - that's up the final application to determine -
but are forced to arbitrarily choose one of the Windows, Mac, or Linux JARs
anyway. I suppose they could use a compileOnly configuration, but that
forces all downstream consumers to re-declare the JavaFX dependencies (and
keep track of the dependencies of the library, too!)
IMO it makes more sense to publish the general API classes into a
classifier-less JAR (which are now the "empty JARs") and place the
platform-specific classes and binaries in platform-specific artifacts with
a different name. For example, JavaFX could have a "javafx-graphics"
artifact for the platform-agnostic classes, and a `java-graphics-platform"
for platform-specific code, with classifiers to specify the platform. This
does run into the "empty JAR" issue again, but it'd be limited in scope to
only the final application.
--
Sam Carlberg
More information about the openjfx-dev
mailing list