вступление
Я создал сценарий, который перебирает все установленные приложения на нашем сервере приложений, и каждое приложение находит папку WEB-INF/lib. Затем для всех сторонних jar-файлов в папке lib я извлеките файл манифеста, чтобы найти ключ Implementation-Version и его значение, исходя из предположения, что только одна реализация-Version пр. манифест.mf. Пока все хорошо, но... тогда некоторые приложения каким-то образом зависят от XML и поэтому имеют в папках lib файлы jar, например
- xalan.jar
- xml-apis.jar
- xerxesimpl.jar
Вопрос
Итак, тогда приступайте к чтению Jar- спецификация файла, которая, я должен признать, не дает мне понять: должен ли я найти версию jar-файла, просто прочитав одну запись в файле manifest.mf?
Пример файла manifest.mf
Это часть содержимого MANIFEST.MF для файла xalan.jar, найденного в одном из приложений. Это показывает, что сложно написать сценарий, который должен знать версию всех файлов jar.
Manifest-Version: 1.0
Created-By: 1.3.1 (IBM Corporation)
Main-Class: org.apache.xalan.xslt.Process
Class-Path: xercesImpl.jar xml-apis.jar serializer.jar
Name: org/apache/xalan/
Comment: Main Xalan engine implementing TrAX/JAXP
Specification-Title: Java API for XML Processing
Specification-Vendor: Sun Microsystems Inc.
Specification-Version: 1.3
Implementation-Title: org.apache.xalan
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/
Name: org/apache/xpath/
Comment: XPath engine
Implementation-Title: org.apache.xpath
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/
Name: org/apache/xml/
Comment: DTM implementation and utilities
Implementation-Title: org.apache.xml
Implementation-Version: 2.7.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xalan-j/
Запоздалые мысли
Но, возможно, мне следует просто создать «черный список», какие jar-файлы игнорировать, например, все jar-файлы, связанные с XML. Я нашел эту ссылку местоположения и версии Xerces и Xalan, показывающую, что Я не могу найти версию xalan.jar в файле manifest.mf. Вместо этого мне нужно получить вывод класса Version.
MANIFEST.MF
, доступные в пути к классам, за один раз - person yegor256   schedule 30.12.2012