Interfaces for languages and modules
JSAbrahams opened this issue · comments
I would prefer that build tools and languages each have their own interfaces, as it allows use to combine arbitrary languages/projects with aribitrary build tools. For instance, I can imagine that the GradleProject interface has different properties, such as the location of the properties and settings files, or another language needing completely different terminology in the interface. C has no classes for instance.
See comment for original discussion.
However, these interfaces need to be placed somewhere. It was mentioned that it slightly weird to place these in common, but they should the very least be placed one lever higher than the java-maven-project
module so other modules could potentially use these interfaces.
We could place MavenProject
in a maven-project
module (and similarly for JavaProject
), and then have java-maven-project
depend on both those modules. However, in earlier discussions we agreed that this would result in an excessive amount of modules (and thus significantly longer compilation times). I think that our current solution is fine for now.
I agree with @FWDekker. Let's refactor/move once we encounter those scenarios.
@FWDekker @gandreadis I agree, lets leave it as is.