是否有用于打包Java Webstart应用程序的gradle插件?

时间:2014-04-09 17:39:02

标签: java build gradle maven-plugin java-web-start

是否有用于打包Java Webstart(JWS)应用程序的gradle插件,类似于Maven webstart plugin的应用程序?我需要至少自动执行以下任务:

  • 基于现有模板生成jnlp描述符,自动添加项目依赖项;
  • 根据jnlp文件或项目依赖项中描述的文件进行jar签名;

4 个答案:

答案 0 :(得分:1)

截至2016年8月,答案是“不”。

根据@Jake的回答,正在开发一个插件。但是没有交钥匙解决方案。您必须自己完成这项工作才能在Gradle中创建一个webstart应用程序......或者使用您自己的自定义解决方案,或者通过对所提到的插件做出贡献,直到它适合您。

以下是插件直接链接:https://github.com/tschulte/gradle-jnlp-plugin

答案 1 :(得分:0)

在Stack Overflow之外找到以下link,看起来它可以完成您正在寻找的一些但不是全部。希望这能让你更接近你所需要的......

答案 2 :(得分:0)

这是一个老帖子,但无论如何回答 我可以配置gradle-jnlp-plugin 步骤:
- 创建一个空文件夹 - 使用Java代码创建src文件夹。我使用了样本AccessibleScrollDemo - 从examples复制keystore.ks或在插件中创建自己的genkey任务 - 使用以下配置创建build.gradle 该插件具有jnlp任务的各种选项examples - 使用gradle(v2.4或更高版本)运行插件任务。

gradle createWebstartDir  

- 这将在build目录下创建jnlp文件,并在build / lib中创建jars。

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'de.gliderpilot.gradle.jnlp:gradle-jnlp-plugin:+'
    }
}

plugins {
    id 'java'
    id 'eclipse'
    id 'idea'
}

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'maven'
apply plugin: 'groovy'
apply plugin: 'de.gliderpilot.jnlp'

group = 'misc'

sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    mavenCentral()
}

mainClassName = 'misc.AccessibleScrollDemo'

sourceSets {
    main.java.srcDir "src"
}

dependencies {

    runtime('log4j:log4j:1.2.17') {
        exclude group: 'ant',         module: 'ant-nodeps'
        exclude group: 'ant',         module: 'ant-junit'
        exclude group: 'ant-contrib', module: 'ant-contrib'
    }
    runtime 'org.slf4j:slf4j-log4j12:1.7.21'

    testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
}

jnlp {
    useVersions = false
    usePack200 = false

    withXml {
        information {
            title project.name
            vendor project.group ?: project.name
        }
        security {
            'all-permissions'()
        }
    }
    signJarParams = [keystore: 'keystore.ks', alias: 'myalias', storepass: 'mystorepass']
}

compileGroovy.enabled = false

afterEvaluate {
    // prevent ClassCastException
    project.version = project.version.toString()
}

}

答案 3 :(得分:-1)

我认为Gradle JNLP Plugin中当前注册的Gradle Plugins directory可能是您正在寻找的项目。

Tobias Schulte的Gradle JNLP插件(GitHub上的tschulte / gradle-jnlp-plugin)大约一年前就是在争取这个,但是这个新的插件都在Gradle Plugin网站注册并且看起来很多更积极的发展。