Java 使用maven分发一个swing应用程序,该应用程序可以单独跟踪每个依赖项

Java 使用maven分发一个swing应用程序,该应用程序可以单独跟踪每个依赖项,java,swing,maven-2,distribution,dependencies,Java,Swing,Maven 2,Distribution,Dependencies,我将把我的项目转移到Maven,最终转移到OSGi。我目前发布的项目是一个包含所有依赖项的大型Zip文件。虽然我的项目代码只占整个软件包的20%,但我必须重新分配所有依赖项。对于较小的独立模块,这可能更少 看来,为了保持我目前的计划,maven汇编插件应该做到这一点 我正在考虑让一个基础安装程序查看XML清单,然后收集所有需要更新的库。这意味着偶尔更改的库的下载频率会降低。这也使得OSGi插件(可以有独立的发布计划)成为可能。本质上,我希望我的软件能够查看和管理各个库,并按需下载(基于清单) 我

我将把我的项目转移到Maven,最终转移到OSGi。我目前发布的项目是一个包含所有依赖项的大型Zip文件。虽然我的项目代码只占整个软件包的20%,但我必须重新分配所有依赖项。对于较小的独立模块,这可能更少

看来,为了保持我目前的计划,maven汇编插件应该做到这一点

我正在考虑让一个基础安装程序查看XML清单,然后收集所有需要更新的库。这意味着偶尔更改的库的下载频率会降低。这也使得OSGi插件(可以有独立的发布计划)成为可能。本质上,我希望我的软件能够查看和管理各个库,并按需下载(基于清单)

我想知道是否有一种“maven方式”可以生成此清单并将所有库发布到一个网站?我相信部署生命周期将完成第二步


作为替代方案,是否有一个开源Java库可以进行这种类型的部署?我不想在分布式代码中嵌入Maven或其他更大的东西。这个应用程序不是为程序员设计的,越简单越好,安装程序越小越好。

我不知道一个专业的方法来完成你描述的第一件事(这并不意味着没有这方面的内容)

作为替代方案,我将使用(这确实是一个很棒的sotware)和生成一个跨平台安装程序,并将其安装/部署到maven存储库


编辑:也许可以看看高级功能调用。不过,我认为这并不能完全解决您的问题(只下载更新/重新安装之间更改的内容)。

这似乎是一个很好的例子,特别是因为您已经在考虑保留对Web服务器的依赖关系。我不知道Maven是否有WS插件;我记得为Maven 1编写代码来完成这项工作


如果您希望看到WebStart的运行,我推荐FindBugs演示页面:--您将在第二段中看到一个链接。

您可以使用它检查和/或更新依赖项的版本。

首先:Web Start可以解决您的问题。还有maven插件

第二:确保你

  • 创建一个密钥库,如下所示:

    keytool-genkey-alias-timefinder-keystore-timefinder.jks

  • 创建一个jnlp模板,如

  • 请看我的表格底部的示例

  • 并通过以下方式致电maven:

    mvn安装webstart:jnlp

  • 优点:

    • 它会为你做一切
    • 它可以为您创建pack200文件(极度压缩的JAR)
    • 如果您在下载服务器上安装了servlet,它将为您处理按需下载。更多信息
    缺点:

    • 设置时间,但一旦你这样做了。它就像一个符咒。查看使用此插件的用户列表

    另一个分发选项可能是

    我已经研究过了,以构建基本安装程序。这个想法是,这个安装程序将从项目站点(通过清单)选择其余的库。