目前,我有一个适用于Java Web Start Swing应用程序的Gradle构建。它主要使用以下概述的步骤:http://www.apprenticeshipnotes.org/2013/01/generating-webstart-files-using-gradle.html
以这种方式构建Gradle的一个巨大问题是,为了构建应用程序,我们每次进行构建时都会浪费时间签署不变的JAR(到目前为止花费大部分时间)。
我一直在寻找Github上的Gradle代码,查看可能指向正确方向的其他配方,但我似乎无法确定如何从一组任务中获取构建工件现有配置,签名,然后将它们捆绑到应用程序中,以获得更高效的功能。
我的想法是能够解析依赖关系,然后确定存储库中是否存在该依赖关系的“已签名”版本。如果没有签名依赖项,则构建将签署该工件并上载到存储库。
我尝试采用的一种更简单的方法是一个项目,它接受应用程序项目的运行时配置,并以某种方式循环遍历依赖项并签署它们并将工件上传到repo,但我不清楚我是如何做到的使用Configuration API执行此操作。仅仅获取配置文件是不够的,因为我想要每个JAR文件的依赖信息。
上传JAR也有点麻烦,因为例如,如果我上传一个签名的jar,比如metrics-json-3.0.2.jar,就像metrics-json-signed-3.0.2.jar一样,我需要更新POM以引用签名的工件。似乎应该有一个更简单的方法
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-parent</artifactId>
<version>3.0.2</version>
</parent>
<artifactId>metrics-json</artifactId>
<name>Jackson Integration for Metrics</name>
<packaging>bundle</packaging>
<description>
A set of Jackson modules which provide serializers for most Metrics classes.
</description>
<dependencies>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-healthchecks</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
</project>
请注意,这与现有签名插件提供的签名机制不同: http://www.gradle.org/docs/current/userguide/signing_plugin.html