-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Choose build system #7
Comments
Cool! I wouldn't object to a move to Gradle. |
Haven't used gradle. The core of clojure uses maven, but most people use leiningen. An apparently balanced review for another data point: https://dzone.com/articles/maven-vs-gradle-one-year-later Some thoughts rather than solid guidance. First bear in mind that migrating a working build is yak shaving. Is the problem that you don't have expertise in maven, or more fundamentally that you don't have expertise in build? If the latter, I'd stick to maven for now. If you know what you're doing, then it sounds like the tooling support is the crucial factor (or maybe how much multi-lang build you need to do), but sounds like gradle would be a better choice. |
I have no previous buy-in to either Maven or Gradle (have used Ant and Eclipse). Peter and I agree that Ant is historical at this point. Based on various experiences migrating teams to new build technology I think there are a few things worth considering (briefly!) first. These include but are not limited to: what is the migration path from Maven to Gradle (have Gradle factored this into their design and documentation), what is the learning curve for Gradle, are the timescales for current development milestones/deliverables going to be affected by migrating. Not saying we shouldn't move, and could fit in with a phase of refactoring, but the issues are definitely not purely on the technology side. |
For me this describes the problem (but I'm not the one working with it right now). I don't know either gradle or maven well. I know a little maven though. This is a good point to consider the move but perhaps not at length. IMHO unless there is a clear advantage to gradle (i.e. someone knows it really well or it has some features that would simplify building loads) moving is not worth it.
Do you mean from wiktionary:
|
I meant in the first sense, but you tell me :-) |
I wasn't aware of the first sense, so good to clarify :) I'm inclined to agree with this:
for now at least, unless we can identify particular Gradle features we are affected by being without. |
From our discussions yesterday I think the main issues are:
* we are not completely up to speed with what we can do with Maven, but
that it generally works
* the problem is more between SNAPSHOTs and individual version numbers
* We don't have an automatic versioner.
* we are still finding the right balance between internal releases and
client-facing releases.
Assuming we take GROBID (which is Java) on board, it also uses Maven and
Maven's project aggregation strategy so we pay a significant cost in moving
away from that.
|
The features that would make switching worthwhile IMO would be if Gradle has, compared to Maven,
I do not know whether any of these features obtain. It would be useful to know if they do.
Yes, i.e. bug #1 .
Good point. To my mind that is a very strong reason to stick with Maven unless:
I'm going to close this thread as resolved. This will stop it showing up as an open issue, but needn't prevent people continuing the discussion if they want to. If for any reason the decision to use Maven needs to be revisited in the future, this thread should be reopened. |
Quoting this blog (which I find myself largely agreeing with):
Currently, ContentMine uses Maven, but the existence of bug #1 shows that ContentMine's expertise with Maven is lacking.
Is investing team time in learning Maven the best option, or would that time be better spent migrating to either Ant+Ivy or to Gradle? I don't have a strong opinion about this myself, but the question seemed worth asking.
Compared to Maven:
Comments welcome!
Update: other potentially appealing build systems include:
The text was updated successfully, but these errors were encountered: