(Sorry if this is not clear or if I’m missing something simple–I’m new to gradle–but I think what I might be looking for is really just some good documentation or write-up of how this can be made to work, or decent working examples.)
I want to figure out how to get other repositoires, like python PyPI to participate in Gradle’s dependency resolution process as an equal participant to Ivy/Maven. I saw that the PyGradle plugin requires you to move everything out of PyPI into Ivy, but with Gradle’s super-extensibility it seems like it should be possible to supply a custom type to "repositories in the same list as, say, mavenCentral(), so that declared dependencies can be resolved in the same dep resolution process, but under-the-hood could use PyPI.
I don’t mind implementing a lot of code in the right places if Gradle has the right abstractions in place, but those relationships don’t seem very well documented and there seem to be a lot of “hard-coded” assumptions. For example, Project.RepositoryHandler (which is ostensibly not java-specific) seems very hard-coded to be able to work with specific types of only java repositories, and it manages ArtifactRepository objects which only have get/setName methods… there are no generic/polymorphic dependency resolution methods on those types, so I am very confused how gradle ever knows how to use those ArtifactRepository objects to actually resolve or retrieve anything. (What data types own the logic to do that part of the work? And what is the logical path to that code from ArtifactRepository?)
Can anyone point me to anything to will help me understand this? I really want us to be able to use gradle for some new multi-language build infrastructure and workspace tooling, but I’m starting to worry that it has a nice facade on top of a lot of assumptions due to its java origins.