使用Maven项目提供单个jar [英] Delivering a single jar with a Maven project

查看:90
本文介绍了使用Maven项目提供单个jar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想向我的客户提供一个.jar文件,但我的项目目前是用Maven构建的,我有几个模块可以生成一个.jar。

I want to deliver a single .jar file to my clients, but my project is currently built with Maven, and I have several modules that generate a single .jar each.

我知道嵌套不同的.jar文件并不是一个好主意,所以我不知道如何实现这一目标。

I know nesting different .jar files is not a great idea, so I am not sure how can I achieve this.

任何想法?

推荐答案

首先,问问自己是否你有一个很好的理由将你的应用程序及其所有依赖项打包到一个jar中。我根本没有找到很多很好的理由(大多数理由与组织政策愚蠢或只是普通的无知有关)。要走的路是将库保存在自己的罐子中并提供包含所有库和应用程序的.zip / .tar.gz

First of all, ask yourself if you have a really good reason for packaging your application and all of its dependencies in to a single jar. I haven't found a very many good reason for this at all (with most reasons being related to organizational policy foolishness or just plain ignorance). The way to go is to keep libraries in their own jars and supplying a .zip/.tar.gz containing all of your libraries and your application with either


  1. 一个可执行的.jar,
    类路径在
    中适当设置你的MANFIEST.MF文件

  2. 一个.bat / .sh
    脚本调用java并根据
    你的deps构建
    一个合适的类路径

相反,使用JNLP(更好地称为Java Web Start)。

Conversely, use JNLP (better known as Java Web Start).

如果你真的希望maven将所有依赖项和你的应用程序捆绑在一个jar下,你想要使用的是jar-with-dependencies预定义程序集 maven程序集插件使用情况页面也显示了如何进行此操作还有。

If you really want to have maven bundle all of your dependencies and your application under a single jar, what you want to use is the "jar-with-dependencies" predefined assembly. The maven assembly plugin usage page also shows how you might this up as well.

这篇关于使用Maven项目提供单个jar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆