我正在寻找一种简单的方法来读取放在已编译的.jar的META-INF文件夹中的pom.properties文件的第二行。 (见这里:http://maven.apache.org/guides/getting-started/index.html#How_do_I_add_resources_to_my_JAR)。我经常需要知道该文件中的日期,每次打开罐子并深入挖掘它都是一件痛苦的事。我想要一个Windows批处理脚本,我可以通过右键单击.jar来运行(因此我也需要Windows注册表命令的帮助)。批处理命令的结果可以只显示在cmd窗口中(一个很好的奖励也是复制到剪贴板的值)。
简而言之:我希望能够在Windows资源管理器中右键单击.jar文件>选择“获取Maven生成日期”#39; (或其他)>并将pom.properties文件的第二行打印到控制台(并复制到剪贴板)。
我知道这可能太难了,我只是不知道该找什么:)。
提前感谢您的帮助。
答案 0 :(得分:0)
请注意,使用System.IO.Compression.FileSystem类需要.NETv4.5。
Add-Type -As System.IO.Compression.FileSystem;
$sourceJar = <source-jar-here>;
$jarArchive = [IO.Compression.ZipFile]::OpenRead($sourceJar).Entries
try
{
foreach($archiveEntry in $jarArchive)
{
if($archiveEntry.Name -like "*pom.properties")
{
$tempFile = [System.IO.Path]::GetTempFileName()
try
{
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($archiveEntry, $tempFile, $true)
$mavenDate = Get-Content $tempFile -First 2
Write-Host $mavenDate
}
finally
{
Remove-Item $tempFile
}
}
}
}
finally
{
$jarArchive.Dispose
}