Java 管理不断变化的JNLP依赖关系?
我们使用JNLP将Swing应用程序部署到所有用户。使用JNLP,您必须引用任何JAR依赖项的特定名称/版本,例如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包含
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)!