Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

634
Views
Requisito no resuelto: paquete de importación: com.google.common.base

Estoy tratando de agregar una biblioteca externa a Liferay: Orika lib.

He agregado la dependencia de Gradle en build.gradle así:

 compileInclude group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.4'

Estoy usando compilar Incluir para que el módulo también tenga la dependencia adjunta.

La lib funciona muy bien localmente . La he probado con un método principal dentro de la clase, pero cuando implemento en Portal recibo el siguiente error:

 org.osgi.framework.BundleException: Could not resolve module: <YourModuleName> [2755]_ Unresolved requirement: Import-Package: com.google.common.base_ [Sanitized]

Esto parece deberse a la falta de bibliotecas en el tiempo de ejecución, pero lo que no está tan claro es por qué se agregan estas dependencias en el momento de la compilación si cuando lo ejecuto dentro public static main funciona como se esperaba. Además, revisé las bibliotecas que Gradle descargó en mi Eclipse para ver si hay algún paquete con com.google.commom.base y no encontré ninguno.

Entonces, debido a que se realiza algún otro paso al compilar, verifiqué MANIFEST.MF en el contenedor generado (por ejemplo, eclipse-workspace<your_project_name>\modules<your_module_name>\build\libs) y luego eliminé la entrada com.google.commom.base del archivo. El error desapareció, pero ocurrió otro:

 org.osgi.framework.BundleException: Could not resolve module: <your_module_name> [2755]_ Unresolved requirement: Import-Package: com.sun.jdi_ [Sanitized]

Entonces, la pregunta es: ¿por qué se agregan esas dependencias y cómo puedo eliminarlas o satisfacerlas? - dado el hecho de que no los tengo en Eclipse, entonces iría a dejarlos.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estas son mis conclusiones después de algunas horas dedicadas a esto:

Para los archivos jar externos, la táctica compileInclude no se comportó como esperaba; tal vez fue una buena pista, pero seguí los pasos que se detallan a continuación.

En mi situación, era mejor usar solo compileOnly cuando se incluía la dependencia. Entonces, el primer paso : agregue lo siguiente a su build.gradle :

 compileOnly group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.4'

En el segundo paso , debe indicar en el archivo bnd.bnd las otras dependencias que necesita el jar externo. En mi caso (Orika lib) necesitaba la siguiente lista: commons-compiler-3.0.8.jar,janino-3.0.8.jar,java-sizeof-0.0.5.jar,javassist-3.24.0-GA.jar ,paranamer-2.8.jar,@slf4j-api-1.7.26.jar - Revisé los detalles del repositorio para averiguarlo y obtuve la información de allí (p. ej., deaquí ). Entonces, lo que tuve que hacer después de agregar a build.gradle fue agregar la siguiente línea en bnd.bnd :

 Include-Resource: @orika-core-1.5.4.jar,@commons-compiler-3.0.8.jar,@janino-3.0.8.jar,@java-sizeof-0.0.5.jar,@javassist-3.24.0-GA.jar,@paranamer-2.8.jar,@slf4j-api-1.7.26.jar

El último paso fue excluir los paquetes que el proceso de compilación coloca en el archivo MANIFEST.MF . Me refiero aquí a los problemas que comienzan con el Unresolved requirement ... Para saber qué no era necesario, implementé varias veces y para cada vez agregué el paquete requerido a la lista Import-Package (esta es otra propiedad en el archivo bnd.bnd ). La lista final fue:

 Import-Package: \ !com.sun.jdi.*,\ !com.sun.tools.attach,\ !com.google.common.base,\ !org.slf4j.impl,\ *

Nota: puede resultarle útil leer más sobre lo que he escrito aquí y aquí .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!