Utilicé la siguiente secuencia de comandos de shell en un proyecto de portal jboss para obtener la lista de archivos jar que se usan en las instrucciones de importación. Esto solo funcionará para las dependencias directas, no para la carga dinámica o incluso cuando se utilizó el nombre de clase completo en la fuente. Además, el contenedor proporciona todos los archivos jar y sus dependencias transitivas, por lo que solo son necesarios para compilar el código.
El objetivo era crear un maven pom para el proyecto y encontrar los archivos que necesitaban implementarse en nuestro administrador de repositorios nexus. Puede ser útil como punto de partida para listar los archivos que son definitivamente necesarios, los archivos jar restantes deberían verificarse de otras maneras. Si el jar también está disponible en un repositorio de maven, puede ver sus dependencias, por ejemplo.
#!/bin/sh
JBOSS_HOME=/path/to/jboss/installation
JBOSS_LIB=$JBOSS_HOME/server/default/lib
JBOSS_DEPLOY=$JBOSS_HOME/server/default/deploy
SRC_DIR=src
for f in $JBOSS_LIB/*.jar $JBOSS_DEPLOY/jboss-portal.sar/lib/*.jar $JBOSS_DEPLOY/jboss-portal.sar/portal-cms.sar/lib/*.jar $JBOSS_DEPLOY/ejb3.deployer/*.jar
do
for c in `jar -tf $f | tr '/$' '..'`
do
#echo "^import ${c%.class};"
if `grep "^import ${c%.class};" -h -r $SRC_DIR -q`
then
echo $f $c
fi
done
done
Acabo de probar este. Pudo señalar una serie de jarras sin usar, pero olvidó algunas que intencionalmente agregué al proyecto. Sigue siendo una herramienta recomendada debido a la facilidad de uso y al informe detallado. Gracias por esto. –