我必须管理一种情况,即在没有适当的发布政策的情况下,我在各种服务器环境中发布了多个jar。
这意味着,除非我明确检查,否则我无法知道在给定服务器上发布了哪个版本。
我推动制定这样的政策,但在那之前,我一直在黑暗中。
无论如何,我设法在构建脚本中插入一些基本信息(时间戳,运行构建的用户)的值,所以我有一些基本数据来控制情况。
我想要做的是阅读该信息,并创建一份报告,告诉我整体情况。
我当然可以通过两种方式自己编写脚本: - 从每个服务器下载罐子并提取清单信息; - 运行一个远程实用程序,它提取清单并返回信息。
是否有一些工具/脚本/蚂蚁任务能够完成这项任务,还是我应该自己写一个?
答案 0 :(得分:1)
你需要进入每个罐子里面。如果您知道他们的位置,假设他们被部署在一个位置(或根文件夹)下,您可以使用一个脚本,该脚本将使用 jar,grep 和查找的某种组合。
for i in *.jar; do jar -tvf ....
我无法想到另一种方法。
答案 1 :(得分:1)
我在这里找到了部分答案:
Ant Task to read directly from a JAR Manifest file
<project>
<!-- Get a jar -->
<copy file="${ant.home}/lib/ant.jar" todir="."/>
<!--
Loads entries from a manifest file.
@jar The jar from where to read
@prefix A prefix to prepend
-->
<macrodef name="loadmf">
<attribute name="jar"/>
<attribute name="prefix" default=""/>
<sequential>
<loadproperties>
<!-- Load the manifest entries -->
<zipentry zipfile="@{jar}" name="META-INF/MANIFEST.MF"/>
<!-- Add the prefix -->
<filterchain>
<prefixlines prefix="@{prefix}"/>
</filterchain>
</loadproperties>
</sequential>
</macrodef>
<!-- Read mf entries -->
<loadmf jar="ant.jar" prefix="ant-mf."/>
<!-- Print them -->
<echoproperties prefix="ant-mf."/>
</project>
它几乎就是它所说的。
输出类似于:
Buildfile: C:\dev\ant\build.xml
[copy] Copying 1 file to C:\dev\ant
[echoproperties] #Ant properties
[echoproperties] #Wed Jan 25 12:02:09 CET 2012
[echoproperties] ant-mf.=
[echoproperties] ant-mf.Ant-Version=Apache Ant 1.8.1
[echoproperties] ant-mf.Created-By=1.5.0_22-b03 (Sun Microsystems Inc.)
[echoproperties] ant-mf.Extension-name=org.apache.tools.ant
[echoproperties] ant-mf.Implementation-Title=org.apache.tools.ant
[echoproperties] ant-mf.Implementation-Vendor=Apache Software Foundation
[echoproperties] ant-mf.Implementation-Version=1.8.1
[echoproperties] ant-mf.Main-Class=org.apache.tools.ant.Main
[echoproperties] ant-mf.Manifest-Version=1.0
[echoproperties] ant-mf.Name=org/apache/tools/ant/
[echoproperties] ant-mf.Specification-Title=Apache Ant
[echoproperties] ant-mf.Specification-Vendor=Apache Software Foundation
[echoproperties] ant-mf.Specification-Version=1.8.1
BUILD SUCCESSFUL
Total time: 2 seconds
这是完成任务所需的基本内容。