Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

293
Vistas
Escriba un complemento de Gradle que reaccione a múltiples complementos

Estoy tratando de escribir un nuevo complemento de Gradle que requiere la aplicación de dos complementos: java o java-library , o maven-publish . Estoy escribiendo el complemento en Kotlin.

Puedo fácilmente, siguiendo la guía de Gradle , hacer que el complemento reaccione a una sola aplicación de complemento:

 project.plugins.withType(MavenPublishPlugin::class.java) { // My stuff }

Pero no puedo hacer lo mismo por requerir dos aplicaciones de complemento:

 project.plugins.withType(JavaPlugin::class.java) { project.plugins.withType(MavenPublishPlugin::class.java) { // My stuff } }

En el segundo caso, lanzar con:

Caso 1: como se esperaba

 plugins { id("java") id("maven-publish") id("org.danilopianini.publish-on-central") }

ejecuta el complemento como se esperaba

Caso 2: no aplicado, como se esperaba

utilizando:

 plugins { id("java") id("org.danilopianini.publish-on-central") }

no aplica el complemento, como se esperaba

Caso 3: aplicado, no debería haber sido

pero finalmente:

 plugins { id("maven-publish") id("org.danilopianini.publish-on-central") }

intenta aplicar el complemento y falla con:

 FAILURE: Build failed with an exception. * Where: Build file '/tmp/junit876726632157783854/build.gradle.kts' line: 1 * What went wrong: An exception occurred applying plugin request [id: 'org.danilopianini.publish-on-central'] > Failed to apply plugin [id 'org.danilopianini.publish-on-central'] > SoftwareComponentInternal with name 'java' not found. * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Exception is: org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'org.danilopianini.publish-on-central'] [cut] Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'org.danilopianini.publish-on-central'] ... 128 more Caused by: org.gradle.api.UnknownDomainObjectException: SoftwareComponentInternal with name 'java' not found. at org.gradle.api.internal.DefaultNamedDomainObjectCollection.createNotFoundException(DefaultNamedDomainObjectCollection.java:489) at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:323)

Lo que me parece un intento de aplicar el complemento independientemente del hecho de que no se aplicó el complemento de Java.

¿Conoce alguna forma de configurar un complemento para que reaccione a múltiples aplicaciones de complementos?

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda