Un problema común que podemos encontrar al usar Maven es que Sun no permite distribuir sus jar, por lo que oficialmente no se puede poner simplemente la dependencia en nuestros ficheros pom.xml usando repositorios públicos como hacemos con la mayoría. De ese modo, en los repositorios maven que hay por el mundo, no están estos jar de Sun MicroSystems, así que maven no se los puede bajar, al menos automáticamente. Hay que bajárselos a mano y ponerlos en tu repositorio local de maven (o en uno a nivel departamental, corporativo, … esto ya depende de la configuración concreta que tengamos en Maven).
Bien, ¿Cómo instalar un jar de terceros en nuestro repositorio? Podemos encontrar más información al respecto en la siguiente página:
http://maven.apache.org/guides/mini/guide-installing-3rd-party-jars.html
Por ejemplo, para el caso de jms.jar, jmxri.jar, y jmxtools.jar, de las que en nuestros IDE nos encontraremos con bonitos errores del estilo: “Missing Artifact required …” las líneas quedarían del siguiente modo:
mvn install:install-file -Dfile={RUTA_JAR}/jms.jar -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar
mvn install:install-file -Dfile={RUTA_JAR}/jmxri-1.2.1.jar -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar
mvn install:install-file -Dfile={RUTA_JAR}/jmxtools-1.2.1.jar -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar
siendo {RUTA_JAR} la ruta física donde nos hemos descargado los ficheros jar correspondientes.
Otro tema distinto es que tengamos problemas con la librería tools.jar. En este caso, el proyecto se quejará de esta dependencia:
com.sun:tools:jar:1.5.0 (la versión puede diferir según el entorno).
Y claro, esa dependencia no existe en ningún repositorio. ¿Cuál es el problema? El problema es que Eclipse está usando para compilar un JRE, no un JDK. Para resolverlo nada más simple que decirle que use el JDK que queramos:
Windows -> Preferences -> Java -> Installed JRE’s -> Add
Y añadimos una nueva entrada que apunte a la ruta del JDK y la marcamos para que la use por defecto.