Java 管理不断变化的JNLP依赖关系?

Java 管理不断变化的JNLP依赖关系?,java,ivy,jnlp,dependency-management,Java,Ivy,Jnlp,Dependency Management,我们使用JNLP将Swing应用程序部署到所有用户。使用JNLP,您必须引用任何JAR依赖项的特定名称/版本,例如widget-lib-1.4.7.JAR 我们刚刚引入了一个新项目,它将编译为一个可重用的JAR,但是它会快速变化(每隔几天左右),因此版本号会经常变化。我们的Swing应用程序将依赖于这个新项目的完成 除非我们改变设置,否则每次发布这个新依赖项的新版本时,我们都必须更新JNLP并重新发布它,正如我所说的,这将非常频繁 有没有什么方法可以从JNLP内部调用Ivy,或者告诉JNLP包含

我们使用JNLP将Swing应用程序部署到所有用户。使用JNLP,您必须引用任何JAR依赖项的特定名称/版本,例如
widget-lib-1.4.7.JAR

我们刚刚引入了一个新项目,它将编译为一个可重用的JAR,但是它会快速变化(每隔几天左右),因此版本号会经常变化。我们的Swing应用程序将依赖于这个新项目的完成

除非我们改变设置,否则每次发布这个新依赖项的新版本时,我们都必须更新JNLP并重新发布它,正如我所说的,这将非常频繁

有没有什么方法可以从JNLP内部调用Ivy,或者告诉JNLP包含目录的内容(然后有一个单独的过程,始终确保JAR的最新版本在该目录中),或者我们可以做些什么,这样我们就不必经常更改JNLP


提前谢谢

如果您的JNLP经常更新(或需要任何其他每用户参数,如上载密钥),请不要使用静态文件。相反,使用JSP、Velocity、Freemarker或类似的模板引擎创建一个模板JNLP文件,并动态填充JNLP字段,例如从数据库中填充。

我不确定这是否满足您的需要,但您可以使用第二个.JNLP作为频繁更改的库。主应用程序的.jnlp将使用
元素引用该.jnlp

主应用程序的.jnlp将包含以下内容:

    <resources>
        <j2se version="1.7+"/>
        <jar href="MyApp.jar" main="true"/>
        <extension name="WidgetLib" href="WidgetLib.jnlp"/>
    </resources>

而WidgetLib.jnlp看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="WidgetLib.jnlp"
      version="1.4.7"
      codebase="http://www.company.com/myapp/">

    <information>
        <title>Widget Library</title>
        <vendor>My Company</vendor>
        <description>Latest version of Widget Library</description>
        <offline-allowed/>
    </information>

    <security>
        <all-permissions/>
    </security>

    <resources>
        <jar href="widget-lib-1.4.7.jar"/>
    </resources>

    <component-desc/>
</jnlp>

小部件库
我的公司
小部件库的最新版本

您是否托管静态JNLP文件?您能用JSP或Velocity模板替换它吗?它是指向JNLP文件的HTML链接-您能详细说明一下JSP模板的含义吗?谢谢(+1)!