Dependencia transitiva de proyectos múltiples de Gradle

Tengo tres gradleproyectos Decir ProjectA, ProjectBy ProjectC.

ProjectCdepende de ambos ProjectAy ProjectB. Mientras ProjectBdepende de ProjectA.

Así ProjectC's build.gradletiene las siguientes líneas:

dependencies {
  implementation project(':ProjectA')
  implementation project(':ProjectB')
}

Y ProjectB's build.gradletiene las siguientes:

dependencies {
  implementation project(':ProjectA')
}

Mi pregunta es ¿por qué necesito explícito implementationde declaración para ProjectAen el ProjectCfichero de construcción 's?

Como, estoy agregando ProjectB, ¿no ProjectAdebería incluirse automáticamente ya ProjectBque depende de ProjectA?

En otras palabras, ¿por qué lo siguiente no funciona ProjectC?

dependencies {
  implementation project(':ProjectB')
}

Soy nuevo gradley, por lo tanto, trato de entender cómo la gestión de dependencias entre el trabajo de Project.


Editar:

Así que quiero cambiar ProjectBel build.gradle a continuación:

dependencies {
  api project(':ProjectA')
}

Para que pueda simplificar ProjectCbuild.gradle a:

dependencies {
  implementation project(':ProjectB')
}

Sin embargo, me sale el siguiente error:

A problem occurred evaluating project ':ProjectB'.
> Could not find method api() for arguments [:ProjectA] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

¿Me estoy perdiendo de algo?

Respuesta 1

public class POSToolBar extiende JFrame {/ ** * Inicie la aplicación. * / private BrowserToolBar toolBar; public POSToolBar () {super ("POS"); Contenido del contenedor = getContentPane (); ...

He buscado en varios sitios web instrucciones sobre cómo vincular 'Cassandra' y 'Eclipse' y seguí las instrucciones hasta el último detalle en varios sitios. Por alguna razón, mientras uso Git Bash, no puedo obtener ...

Estoy haciendo un programa que funciona con mensajes de criptografía por Socket. Pero, cuando en mis mensajes tiene una "o", o "b", o "c" y otras letras, recibo esa excepción en el momento descifrado. ...

Tenemos muchas clases de entidades de hibernación con relaciones anidadas. Estoy tratando de encontrar la mejor manera de convertir una entidad dada a un formato json equivalente. Sé sobre JsonIgnore, Jackson mixins y ...