Ce n'est pas un doublon car ces autres solutions n'ont pas fonctionné.
J'ai un sous-projet:
: commons: widget
gradle.build (sous-projet) ressemble à ceci:
configurations {providedCompile}
dependencies {
compile project(":commons:other-widget")
...other dependencies...
}
Si vous affichez les dépendances:
+--- project :commons:some-other-project
+--- project :commons:exclude-me-project (*)
\--- org.Apache.cxf:cxf-rt-frontend-jaxrs: -> 3.0.3 (*)
Ce qui ne fonctionne pas:
N'importe quelle syntaxe habituelle. J'ai essayé toutes les variantes auxquelles je peux penser. Je suis même allé chercher l'API mais je n'ai pas pu trouver ce dont j'avais besoin.
Dans la section des dépendances de ce projet: ...
compile project(":commons:some-other-project") {
exclude (":commons:exclude-me-project")
}
Résultat:
Could not find method exclude() for arguments [:commons:some-other-project] on project
J'ai aussi essayé:
compile ( project (':commons:some-other-project') ) {
transitive = false
}
Résultat: au lieu de supprimer les dépendances de ": commons: some-other-project", il supprime ": commons: some-other-project".
J'ai un grand projet compliqué à convertir. J'ai beaucoup de ce genre de travail devant moi. Étant donné un projet comme dépendance, comment puis-je en exclure des éléments?
exclude
pour les dépendances a un peu une autre syntaxe, essayez donc de le faire en fournissant le nom du module, qui est égal à exclude-me-project
nom, comme:
compile(project(":commons:some-other-project")) {
exclude module: "exclude-me-project"
}
Alternativement, vous pouvez exclure toutes les dépendances transitives pour le projet commons
, mais cela supprimera tous les dépôts du some-other-project
projet, y compris le exclude-me-project
:
compile(project(":commons:some-other-project")) {
transitive = false
}