我想在我们的构建服务器(Jenkins)中设置作业以自动签署生成的 jar。
出于显而易见的原因,我不想将证书和凭据放在版本控制中,甚至不想在作业配置中读取。
理想情况下,我希望有某种“签名服务器”,构建服务器可以将 jar 发送到其中进行签名。
根据文档,Eclipse 项目有一个类似的系统。但没有提及他们使用的技术。
那么有人知道“唱歌服务器”解决方案,还是解决这个问题的不同方法?
我想在我们的构建服务器(Jenkins)中设置作业以自动签署生成的 jar。
出于显而易见的原因,我不想将证书和凭据放在版本控制中,甚至不想在作业配置中读取。
理想情况下,我希望有某种“签名服务器”,构建服务器可以将 jar 发送到其中进行签名。
根据文档,Eclipse 项目有一个类似的系统。但没有提及他们使用的技术。
那么有人知道“唱歌服务器”解决方案,还是解决这个问题的不同方法?
Eclispe WIKI 记录了签名过程,简称
<exec dir="${packtmp}" executable="scp" output="signing.txt">
<arg line="${archiveName} dev.eclipse.org:${stagingDirectory}"/>
</exec>
<exec dir="." executable="ssh" output="signing.txt" append="true">
<arg line="build.eclipse.org "cd ${stagingDirectory}; /usr/bin/sign ${stagingDirectory}/${archiveName} mail ${stagingDirectoryOutput}""/>
</exec>
<exec dir="." executable="scp" output="signing.txt" append="true">
<arg line="dev.eclipse.org:${stagingDirectory}/${buildId}-out/${archiveName} ${buildDirectory}/${buildLabel}"/>
</exec>
我不确定现有的解决方案。但是,我认为您可以在一天内自行构建解决方案:
机器 A 将运行 Jenkins 并拥有一个共享文件夹 机器 B 将运行任何应用程序/Web 服务器(例如 Apache + PHP)并具有签名密钥。
作为 Jenkins 工作的一部分,您执行以下操作:a) 将 jar 复制到共享文件夹 b) 运行 shell 脚本“wget http:// machineBURL /sign.php?filename=SomeJar.jar”
在机器 B 上,您将拥有 PHP 脚本,它将获取传递的文件名,从共享文件夹中获取具有此文件名的 jar,对其进行签名并将其放回同一文件夹中。