用perl做这件事可能有点困难,但我希望有人至少能帮我找到完成这件事的正确方向。
目前我们有一台Nexus服务器,它保存着我们所有的.jar文件。其中一个应用程序需要使用在.properties文件中定义的第三方通用jars。
属性文件如下所示
commons-logging=commons-logging-1.1.1.jar
commons-io=commons-io-2.3.jar
httpcore=httpcore-4.2.1.jar
我被要求创建一个Perl脚本,它将浏览这个属性文件,然后将该版本(即commons-logging-1.1.1.jar)与位于其他地方的版本进行比较。如果属性文件中的版本不同,它会将新的.jar文件复制到公共jar位置。
C:\commons中的一个示例是commons-logging-1.1.0
在属性文件中,指定commons-logging=commons-logging-1.1.1.jar是必需的。然后,perl脚本将读取.properties文件,确定commons-logging-1.1.1与commons文件夹中的commons-logging-1.1.0不同,并将其替换。
我们也可以使用maven来做这样的事情,但我不确定我们如何才能做到这一点,这样开发人员就可以定义属性文件中需要什么jar,并在特定的文件夹中替换它。
任何帮助都将不胜感激。
发布于 2012-11-28 03:51:34
很难知道你在这方面有什么问题。也许这个程序会有帮助呢?
use strict;
use warnings;
open my $fh, '<', '.properties' or die $!;
while (<$fh>) {
if (/^([\w-]+)=\1-([\d.]+)\.jar$/) {
my ($lib, $ver) = ($1, $2);
print qq(Library "$lib" needs version $ver\n);
}
else {
warn "Error in .properties line $.: $_";
}
}
输出
Library "commons-logging" needs version 1.1.1
Library "commons-io" needs version 2.3
Library "httpcore" needs version 4.2.1
https://stackoverflow.com/questions/13590995
复制相似问题