How to deliver java applications and their dependencies to my end users?

I have a bunch of java projects (desktop applications) and I am looking for a way to make them available to my end users. In other words, I am looking for a package manager that suits the java world.

Package managers exist for many technologies and formats (e.g debian packages, docker images, npm modules, python wheels, etc…). They have easy to use command line interfaces that handles dependencies such as apt install curl. They are perfect for end users that should not be bothered with versions and dependencies.

There is this tool called Maven, however I don’t really understand how my end users are supposed to use it to install my java applications? What is the equivalent of apt install <something> when using Maven to deliver java applications? And if Maven is not designed to provide this functionality, what tools should I use instead?

  • 1

    What kind of application are you developing in Java? a desktop GUI application? A web application? are you using some kind of server to deploy? Provide details.

    – 

  • We have java desktop GUI applications and some java libraries used by those applications. I don’t use any server to deploy yet. I am trying to figure out what would be the best tools to provide releases of these applications and libraries to my end users. Obviously I am not going to hand over these apps in a zip file on a usb stick. I assume there are repository tools for java that could provide ways for users at my company to easily install our apps like all mainstream technologies provide. I am not familiar with the Java world thus I seek guidance.

    – 

  • You need to get more specific. What kind of Java GUI app: Swing, JavaFX, SWT, Vaadin? Who is your audience: members of your team, corporate department, the public? You mention Java libraries — are you distributing those amongst your team, across a larger company, or the public? Or did you mean you build Javalibraries to be consumed only by your Java desktop app?

    – 

  • 1

    Maven has two purposes: (a) assist programmers in locating, downloading from known repositories, and installing libraries for use within their project (“dependency management”), and (b) provide a build system to choreograph the compiling of your code and assembly of artifacts such as a JAR file. Maven is a programmer tool, not a user tool. Read Wikipedia for more orientation.

    – 




  • 1

    Before posting here, read Wikipedia, and study existing Questions and Answers.

    – 

Leave a Comment