2011-05-24 8 views
7

Ayer por la noche estaba intentando poner un tutorial simple para construir una aplicación usando la pila - Spring (2.5) + JPA (1.0) + Hibernate (descargando por primera vez, por lo que no sabía qué versión usar). Lamentablemente, no quería usar Maven ya que los participantes objetivo estaban en construcción ANT. Como de costumbre, golpee el motor de búsqueda y obtenga de alguna manera los pasos en el contexto de la aplicación, persistence.xml y en las clases de Java. En el momento en que comencé a obtener las bibliotecas requeridas, perdí en el infierno JAR. Afortunadamente, no hay mucho problema en el lado de Spring ya que todos los JAR dependientes se empaquetan juntos para mi Spring 2.5.6.¿Nos dirigimos al infierno de jar en la plataforma java similar al infierno de dll?

Cuando se trataba de hibernar, no tenía ni idea de qué todos los Jars debían incluirse desde el principio. En el siguiente desafío, no sabía qué versión agregar para cada uno.

Finalmente conseguí que todo funcionara, pero parece tan aterrador entrar en este infierno JAR otra vez a menos que me lleven a través del cielo de Maven.

Con muchos interceptores y tejido, se está volviendo más complicado para el programador Java convencional que una vez le gustó Java principalmente por mucha transparencia en lo que mi código está haciendo.

¿Estoy en lo cierto en el proceso de pensamiento?

+2

No todas las implementaciones de JPA tienen algo así como el número de dependencias como Hibernate. – DataNucleus

+3

no nos dirigimos hacia eso. Estamos en eso desde el momento en que lloonngg. Solo mire la cantidad de "tecnologías" que se supone arreglan ese problema. Tomemos como ejemplo OSGi y su página * "Why OSGi" *, verá por ejemplo lo siguiente: * "La tecnología OSGi resuelve el infierno JAR" *. Y los chicos de OSGi no tienen ni idea de cuando se trata de problemas de dependencias:) – SyntaxT3rr0r

Respuesta

9

Aún puede tener administración de la dependencia mientras usa Ant, use Ivy. Consulte un tutorial detallado here para más o menos exactamente la pila que desea utilizar. (No incluye Hibernate, pero creo que puede encontrar cómo agregarlo rápidamente)

Y una cosa más, si se refiere a spring.jar que tiene el paquete completo de Spring 2.5.6, sugiero encarecidamente para no usarlo, probablemente no necesite más del 20% de las bibliotecas incluidas en él. (Tómese el tiempo para descubrir exactamente qué bibliotecas necesita y solo elija las que necesita).

Además, considere utilizar Spring 3 si puede, así como Hibernate, si tiene la libertad de elegir una versión, yo iría para lo ultimo

+0

Gracias. He usado tanto Maven como OSGi. Son maravillosos. Pero para mis necesidades donde los participantes no pueden entrar al repositorio de maven y sin una conexión a Internet muy buena, tuve que ir a una biblioteca desconectada o más bien estática configurada donde todos los frascos están presentes en el sistema en el momento de la construcción . Por lo tanto, estaba buscando cada jar uno después del otro. – arunram

+1

aún más mi segundo comentario todavía es válido, no _util_ el spring.jar, compruebe exactamente qué jarras necesita. pero con sus limitaciones puede tener razón en que usar cualquier tipo de sistema de administración de dependencias centralizado es una sobrecarga, simplemente estaba señalando el hecho de que existe un sistema parecido a un maven para la hormiga, es decir, la hiedra. – abalogh

1

Antes había utilizado otras implementaciones de JPA, pero utilicé Hibernate por primera vez este año. Ciertamente es más complicado que otros en términos de dependencias de jar, pero en el Getting Started Guide, en Chapter 1, debajo de Obtaining Hibernate encontré detalles sobre qué jarras necesitaba y por qué.

Sufrí más problemas en el último momento, no porque no sepa qué frascos usar, sino porque estamos en un proyecto realmente grande, y otros subproyectos ya estaban usando versiones anteriores de las clases de Hibernate, y esto me causó un montón de problemas en tiempo de ejecución y me tomó varios días diagnosticar y corregir.

Creo que esto es una realidad por el momento, y herramientas como Maven o frameworks como OSGi intentan aliviar el problema.

Quizás la mayor esperanza que tenemos es Project Jigsaw que pretende ser parte de JDK 8 en el futuro y que intenta resolver los problemas de modularidad de Java que tenemos actualmente. Será como un OSGi con esteroides y construido en el propio JDK.

Pero antes de eso, todo lo que puedo decir es una famosa cita de Winston Churchill

Si usted está pasando con infierno, mantener va

+0

+1 solo por la cotización – abalogh

0

Ésta es una de las problemas con las direcciones Grails - agrupando un conjunto específico de jar (Spring, Hibernate, etc.) que funcionan juntos y actualizando esos jarrones a medida que Grails evoluciona.

Cuestiones relacionadas