transitiva sencillos segunda normalizacion normales normal funcional formas forma ejemplos dependencia definicion datos conceptos concepto basicos ant dependencies ivy

ant - sencillos - Ivy: ¿cómo elimino las dependencias transitivas?



normalizacion de base de datos ejemplos sencillos (4)

Otra opción para no descargar ninguna dependencia es deshabilitarlos con el atributo transitive . Entonces, si quieres hibernate-core , pero ninguna de sus dependencias, puedes hacer esto:

<dependencies> <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf=''..'' transitive="false" /> </dependencies>

Estoy usando Ivy para administrar las dependencias de mi proyecto.

Hasta ahora, he especificado una dependencia en Hibernate y servlet-api. Sin embargo, el contenedor de hibernación tiene muchas dependencias que realmente no son necesarias, como jaas y jacc .

Esto se convierte en un obstáculo para mostrar porque jaas y jaac son bibliotecas de Sun y, por lo tanto, sus licencias prohíben colocarlas en los repositorios de Maven, por lo que Ivy no puede encontrarlas allí.

  • ¿Cómo hago para que Ivy descargue Hibernate pero no estos dos?
  • Como beneficio adicional, si realmente los necesitaba y descargué sus tarros de Sun, ¿en qué carpeta de mi máquina Ivy los buscaría?

Al navegar por la web y los blogs, encontré las siguientes configuraciones de hiedra para trabajar en agarrar jaas / jacc e hibernar

<ivysettings> <settings defaultResolver="chained" checkUpToDate="true" /> <resolvers> <chain name="chained"> <url name="com.springsource.repository.bundles.release"> <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </url> <url name="com.springsource.repository.bundles.external"> <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </url> <ibiblio name="ibiblio" m2compatible="true"/> <ibiblio name="jboss" root="http://repository.jboss.org/maven2/" m2compatible="true"/> <ibiblio name="java-net-maven1" root="http://download.java.net/maven/1" pattern="${java.net.maven.pattern}" m2compatible="false"/> <ibiblio name="java-net-maven2" root="http://download.java.net/maven/2/" m2compatible="true"/> <ibiblio name="compass" m2compatible="true" root="http://repo.compass-project.org" /> </chain> </resolvers>

El solucionador jboss ibibilio es lo que hizo el truco en agarrar JAAS / JAAC

Mi ivy.xml luego puede sacarlo con

<ivy-module version="2.0"> <info organisation="foo" module="Bar"/> <dependencies> <dependency org="com.h2database" name="h2" rev="1.2+"/> <dependency org="org.hibernate" name="hibernate-annotations" rev="3.4.0.GA"/> </dependencies>


Para responder a su segunda subpregunta literalmente , que nadie ha hecho hasta ahora, "¿en qué carpeta de mi máquina buscaría JAR en Ivy?" Eso depende. Suponiendo que no ha cambiado la ubicación en ivysettings.xml u otro archivo de configuración: para JAAS, esto sería: ( inicio del usuario ) /. Ivy2 / cache / javax.security / jaas / jars. Si Ivy ya intentó sin éxito encontrar JAAS en Maven Central u otros repositorios, ese árbol de directorios ya debería existir en su mayor parte, y todo lo que necesita hacer es crear el directorio "jarras" y colocar jaas-1.0.01.jar en eso. Ivy ya no se quejará de la dependencia faltante en su próxima invocación.

EDITAR: Por otra parte, consulte la discusión a continuación para ver las consideraciones para no hacerlo así.

(( inicio del usuario ) es C: / Users / ( nombre de usuario ) en Windows 7).


¿Cómo hago para que Ivy descargue Hibernate pero no estos dos?

Ivy hace esto usando lo que llama "configuraciones". Su ivy.xml que representa a Hibernate deberá proporcionar diferentes configuraciones para representar diferentes casos de uso para hibernar. (Obviamente, hay un cierto uso de hibernación que requiere jaas y jacc, pero aparentemente no se usa ese caso).

Aquí está la documentación sobre configuraciones. Si desea proporcionar el ivy.xml que está utilizando para la hibernación, puedo proporcionar sugerencias sobre la creación de configuraciones que eliminen las bibliotecas específicas que desea eliminar.

Si realmente los necesitaba y descargué sus Tarros de Sun, ¿en qué carpeta de mi máquina Ivy los buscaría?

Los "directorios" que hied busca en hiedra archivos y artefactos se especifican en la lista de resolvers que está utilizando. La lista de resolutores se especifica en el archivo de configuración de ivy (generalmente denominado ivysettings.xml ). Generalmente, estos no son directorios locales, sino URL remotas. Ahi esta; sin embargo, un tipo de resolución de archivos locales que funcionará para esto.

Si hace esto, deberá proporcionar tanto los archivos ivy como los artefactos (jarras), cada uno con nombres de archivos que coincidan con los patrones de resolución. Los detalles sobre eso están en la documentación.

Aquí hay un ejemplo de resolución de archivos locales de un archivo de configuración de hiedra:

<filesystem name="myfiles" checkconsistency="false" checksums="" transactional="false"> <ivy pattern="/data/repo/[organisation]/[module]-[revision].ivy.xml"/> <artifact pattern="/data/repo/[organisation]/[module]-[revision].[ext]"/> </filesystem>

También tenga en cuenta que tendrá que apuntar sus tareas de hiedra a la resolución correcta. Puede hacer esto con el atributo resolver en las tareas ant, o con el atributo defaultResolver en el elemento de settings en el archivo de configuración ivy.

Aquí está la documentación sobre los resolutores.

EDITAR: El OP encontró una solución menos intensiva para su problema original específico. La etiqueta secundaria "excluir" de la etiqueta de dependencia le hizo el trabajo:

<dependencies> <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf=''..''> <exclude name=''jaas'' /> <exclude name=''jacc'' /> </dependency> </dependencies>