Build tool

  4 posts   Feedicon  
Replies: 3 - Last Post: January 11, 2011 11:17
by: bertvanbrakel
« Older Topic » Newer Topic
showing 1 - 4 of 4
 
Posted: December 06, 2009 19:34 by Jarle Hansen
We need to agree on a build tool for the microlog4android project.

The two alternatives we have discuessed are Maven and Gradle. The purpose of this post is to write down positive/negative aspects of both solutions and then finally select one of them.


    Maven:
    Positive:
  • Provides a fairly good dependency management system, maybe not as good as Ivy...
  • The folder structure, although not really tied directly to maven, is good.
  • A large community of users, mature technology.
  • Can generate project webpages.

    Negative:
  • If you want to do something outside the standard solution, like any mid to large projects usually want, you are in for a fight. Maven is not very flexible in some situations.
  • Android jars not available in Maven central (http://code.google.com/p/android/issues/detail?id=4577).
  • xml is used for scripting the builds, xml is NOT a programming language Smile
  • Very very very poor error messages.
  • Transitive dependencies, these are just terrible.
  • The IDE plugins are not really that great.



    Gradle:
    Positive:
  • Groovy syntax, a very suitable language for build files.
  • Both Maven and Ant features easily available.
  • Can use Maven repositories or a lib-folder, you can choose.
  • Integrates nicely with external tools in both Eclipse and Intellij.

    Negative:
  • Not in final version yet, 0.8 is the most recent. This means the API might change.
  • Since it is a fairly new technology it does not have the same community support as Maven has.
  • Does not have IDE plugins yet, this is really not an issue though since it is easy to use external tools.


    Things we need to find out about Gradle:
  • Does it support generation of project website?
  • How easy is it to build an Android project with Gradle?
  • Is the technology mature enough, we would not like to go for a build technology that will not be supported in the future.
 
Posted: January 02, 2010 15:54 by Jarle Hansen
I have been reading up on gradle and updating all build files in the protobuf-javame project.
The more I work with it, the better I think gradle is.

A few features that I have used so far:
  • Dependency management to maven central works flawlessly.
  • Does not yet provide an IntelliJ plugin, but does offer support for Eclipse (generation of .project files etc). And although its not completely ideal you can import eclipse projects in IntelliJ. So this is definitely no show stopper.
  • Excellent multiproject support! This is really impressive how it works with configuration injection.
  • Offers a Java plugin, similar to Maven style where common tasks like compile, test and package are available. Hooks are also easy to use if you need any custom behavior.
  • IntelliJ 9 does come with gradle support, it is not perfect (it does for example use the deprecated task-methods), but it works just fine and will hopefully get updated soon.
 
Posted: January 05, 2010 09:36 by johanlkarlsson
Hi,

I think we could try out Gradle. Using Maven should imply that the artifacts are published to Maven central. But to do this the dependencies should also be there and the Android jars are not there. This has been reported as a bug to the Android developer, but they refuses to put Android in the Maven central. The discussion is to big to take place here. Anyway... Maven and Android is not a perfect match.

So in this moment I prefer Gradle over Maven.

Regards
Johan
 
Posted: January 11, 2011 11:17 by bertvanbrakel
With maven you can always specify your own repo to use for certain artifacts. For my part, I prefer artifacts to live in the maven repos so it's easy to access, especially when multiple developers are involved.

Even if one doesn't use maven these locations can still be used. What I don't want is to need to include jars in my checked in sources, got away from that years ago!

I have maven/eclipse/android working pretty well now (after too much pain), so would prefer the artifacts in the maven repos.

Regards,
Bert
Replies: 3 - Last Post: January 11, 2011 11:17
by: bertvanbrakel
« Older Topic » Newer Topic
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120127.ac94057)
 
 
Close
loading
Please Confirm
Close