-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a dependency-bundled jar #21
Comments
I see what you mean. I guess you're not using dependency resolution. If you were using ivy, maven or gradle in your project, dependencies would automatically be downloaded. Simple fix:Just drop the More complicated fix:Create a shaded jar, i.e. on a build move all classes from The drawback is that those classes would be loaded multiple times in projects where there are multiple usages of the
I don’t agree, as dependencies should not be downloaded manually anyway. But I can see that this project has not had any dependencies in the past, so this might be new to users. So I'll leave the bug tag here for now, just for attention. |
Then remove the dependency. The old version did this fine and this is a regression. Not all projects use maven. The title of the project is "Java Simple Serial Connector". It's no longer simple once you add 3rd party dependencies that break builds. Applying maven logic to all releases paradigms is wrong. Pragmatism doesn't win over usefulness. |
Yes. It's a fact. BSD is compatible with just about anything. Not so much the other way around, but we're LGPL, so we're clear. BSD can be downgraded to LGPL (or even GPL for that matter) cleanly without any licensing implications.
Let's not confuse maven convention with binary releases. Take PDFBOX for example. They have slim versions and release versions. Release versions run with zero additional dependencies. So, say that you need PDFBOX in your boilerplate small project today, the fat release version works great. Those concerned about having two bouncy-castles (for example), can safely use dependency management to fetch dependencies instead. I don't think it's right to break the lib over this. |
Some alternatives then, as I can agree to your argument: Alternatives
Pros / Cons
Implementing (3)That said, I'd suggest to create a new package in the java source directory: |
Have you tried to run it without |
So I've talked to @bmhm about this on Slack and his concern is package "shading" through Maven will break the |
Subject changed to reflect goal of providing a "fat" jar that bundles stuff like |
* Change maven id and project name to just "jssc" at "io.github.java-native" namespace * Adds two releasable jars (platform-specific jar and uber jar). TODO: add non-shaded fat jar #21 * Allow cmake to parse version info from pom.xml * Adds ability to skip native compilation steps including cmake and tests * Leverages maven-assembly-plugin for better classifier to the default artifact * Alphabetize, organize and remove hard-coding of dependencies/variables * Adds Travis-CI for many platforms. Note, some binaries are not yet usable, sorry! * Adds Ubuntu 14.04 cross-compiled binaries to the source tree. TODO: Move to git-lfs * Add LICENSE to pom.xml (#22)
Thanks for documenting. In the end we will have three main jars:
The third option is optional, because with java modules on their way, I consider this the better option. |
Let's close this as the maven branch has been merged and such a jar is generated on |
No, it's not resolved. Dependencies are missing. |
Request to create an additional non-shaded, standalone jar for our downloads area.
Original bug report:
Trying to run
java-simple-serial-connector-2.8.1-SNAPSHOT.jar
inside a project causes the following exception:I consider this a bug. Previous versions of JSSC did not have this issue.
The text was updated successfully, but these errors were encountered: