tutorial modulos homepage goals estructura español entre dependencias dependencia consola comandos agregar maven hive calcite

maven - modulos - Depende de las dependencias pendientes del proyecto UED 0.14 de UDF



maven tutorial español (3)

Estaba intentando configurar un proyecto Maven que contendrá funciones definidas por el usuario (UDF) que me gustaría usar en mis consultas Hive. Empecé con un proyecto Maven que no contiene archivos fuente, y el siguiente POM:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>exp</groupId> <artifactId>HiveUdfTestProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>0.14.0</version> </dependency> </dependencies> </project>

Cuando traté de construir el proyecto, recibí el siguiente error:

Error al ejecutar el objetivo en el proyecto HiveUdfTestProject: No se pudieron resolver las dependencias para la exp del proyecto: HiveUdfTestProject: jar: 1.0-SNAPSHOT: Los siguientes artefactos no se pudieron resolver: org.apache.calcite: calcita-core: jar: 0.9.2-incubating- SNAPSHOT, org.apache.calcite: calcita-avatica: jar: 0.9.2-incubating-SNAPSHOT: no se pudo encontrar el artefacto org.apache.calcite: calcita-core: jar: 0.9.2-incubating-SNAPSHOT -> [Ayuda 1 ]


Encontré el contenedor de incubación de núcleo de calcita en el repositorio central de maven (pero no en la versión de instantánea de incubación) requerido por la dependencia de colmena-exec 0.14.0.

Agregar el núcleo de calcita de maven central eliminó el error original e introdujo una nueva dependencia faltante "pentaho-aggdesigner-algorithm" que encontré en ConJars .

Al agregar el repositorio conjars y la dependencia pentaho, apareció una nueva dependencia que faltaba "org.apache.calcite: calcita-avatica: jar: 0.9.2-incubating-SNAPSHOT", cuya dependencia de incubación (pero no instantánea) estaba disponible en el repositorio central de maven .

Al agregar la dependencia de calcita-avatica al POM, finalmente se logró construir el proyecto vacío.

Aquí está el POM final necesario para hacer un proyecto destinado a la compilación de UDF de Hive:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>exp</groupId> <artifactId>HiveUdfTestProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <repositories> <repository> <id>conjars.org</id> <url>http://conjars.org/repo</url> </repository> </repositories> <dependencies> <!-- From Maven Central --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>0.14.0</version> </dependency> <dependency> <groupId>org.apache.calcite</groupId> <artifactId>calcite-core</artifactId> <version>0.9.2-incubating</version> </dependency> <dependency> <groupId>org.apache.calcite</groupId> <artifactId>calcite-avatica</artifactId> <version>0.9.2-incubating</version> </dependency> <!-- From conjars --> <dependency> <groupId>org.pentaho</groupId> <artifactId>pentaho-aggdesigner-algorithm</artifactId> <version>5.1.3-jhyde</version> </dependency> </dependencies> </project>

Una vez que se construyó el proyecto vacío, traté de integrar las configuraciones de POM en un proyecto Maven existente más grande y vi errores sobre el núcleo de calcita específicamente buscando la versión de instantánea. Para superar esto, cambié la dependencia de colmena-ejecutor para que se vea así:

<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>0.14.0</version> <exclusions> <exclusion> <groupId>org.apache.calcite</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>


Incluí explícitamente los proyectos calcita-core y calcita-avatica como dependencias, y mi proyecto (que también incluye las dependencias de Hive 14) ya no falló con el error ''no se pudieron resolver los artefactos''.

<dependency> <groupId>org.apache.calcite</groupId> <artifactId>calcite-core</artifactId> <version>1.0.0-incubating</version> </dependency> <dependency> <groupId>org.apache.calcite</groupId> <artifactId>calcite-avatica</artifactId> <version>1.0.0-incubating</version> </dependency>

Por lo que puedo decir, este es un problema abierto con Hive 14. Consulte https://issues.apache.org/jira/browse/HIVE-8906 para obtener más información.


Resolví el mismo problema añadiendo las dependencias siguientes a /ql/pom.xml org.pentaho pentaho-aggdesigner-algorithm 5.1.3-jhyde

<dependency> <groupId>eigenbase</groupId> <artifactId>eigenbase-properties</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>net.hydromatic</groupId> <artifactId>linq4j</artifactId> <version>0.4</version> </dependency>

y debajo del repositorio a /pom.xml debajo de los positorios

<repository> <id>conjars</id> <name>Concurrent Conjars repository</name> <url>http://conjars.org/repo</url> <layout>default</layout> </repository>