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

628
Views
"Sin atributo de manifiesto principal" al crear un contenedor de Kotlin con IntelliJ IDEA

Al crear un jar a partir de mi código Kotlin y ejecutarlo, dice "Sin atributo de manifiesto principal". Al mirar el manifest.mf, tiene este contenido:

 Manifest-Version: 1.0

Al mirar el archivo en la fuente, tiene este contenido:

 Manifest-Version: 1.0 Main-Class: MyMainClass

Al copiar manualmente el manifiesto de origen en el contenedor, funciona perfectamente.

Captura de pantalla de la configuración de mi artefacto

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Recibí este error con Gradle y Kotlin. Tuve que agregar en mi build.gradle.kts un atributo de manifiesto explícito:

 tasks.withType<Jar> { manifest { attributes["Main-Class"] = "com.example.MainKt" } }

De la documentación de gradle , es mejor crear una tarea fatJar para englobar todas las dependencias de tiempo de ejecución en caso de que encuentre errores java.lang.NoClassDefFoundError

over 4 years ago · Santiago Trujillo Report

0

Si alguno de los archivos jar dependientes tiene un archivo MANIFEST.MF , anulará el archivo personalizado que define la Main-Class .

Para solucionar este problema, debe hacer lo siguiente:

  • Deshabilitar el orden alfabético
  • Cambie el orden de los elementos para que el elemento que tiene el archivo META-INF/MANIFEST.MF sea el primero en la lista
  • IntelliJ IDEA recogerá su MANIFEST.MF personalizado y lo mostrará para el artefacto jar .

Consulte el problema relacionado para obtener más detalles.

También puede usar Gradle o Maven para generar el fat jar en su lugar.

over 4 years ago · Santiago Trujillo Report

0

1. Agregue la siguiente definición de tarea en el script de compilación

 tasks.jar { manifest { attributes["Main-Class"] = "MainKt" } configurations["compileClasspath"].forEach { file: File -> from(zipTree(file.absoluteFile)) } }
  1. Luego, las tareas de jar (Tareas | construir | jar) nuevamente desde la barra lateral derecha.
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!