<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: In Search of a Better Build System</title>
	<atom:link href="http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/feed" rel="self" type="application/rss+xml" />
	<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system</link>
	<description>(permanently in beta)</description>
	<lastBuildDate>Mon, 09 Jan 2012 20:21:24 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Alexandre Bairos</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2624</link>
		<dc:creator>Alexandre Bairos</dc:creator>
		<pubDate>Thu, 03 Jan 2008 14:38:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2624</guid>
		<description>http://www.nabble.com/Project-Layouts-td14588782.html

I didn &#039;t test it. But Assaf announced the Project Layouts feature.</description>
		<content:encoded><![CDATA[<p><a href="http://www.nabble.com/Project-Layouts-td14588782.html" rel="nofollow">http://www.nabble.com/Project-Layouts-td14588782.html</a></p>
<p>I didn &#8216;t test it. But Assaf announced the Project Layouts feature.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Josh Rehman</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2583</link>
		<dc:creator>Josh Rehman</dc:creator>
		<pubDate>Sun, 16 Dec 2007 04:50:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2583</guid>
		<description>Nothing wrong with waiting until you need something before getting it. Just because many of our tools are &quot;free software&quot; doesn&#039;t mean that we &#039;infovores&#039; shouldn&#039;t be wary of unchecked consumerism and greed! In fact we need to be even more careful of gorging because the barrier-to-consumption is so low.

I wish you could be more specific in which ways you feel that Maven isn&#039;t maintaining focus. I&#039;ve been reading about Maven, although haven&#039;t yet used it; I have a couple of strong developer friends who very much like Maven - they feel that the rigidity of the file structure is a small price to pay for the convenience the platform offers. And from the look of it, I tend to agree (although I have to say the 22-step build model is a bit intimidating!)

WRT directory layout rigidity, there is something to be said for a one-size-fits all convention when it &quot;doesn&#039;t really matter&quot;. Who cares where the directories are? If the world really agreed on suitable conventions our tools could nicely present our files to us however we like (and indeed, most IDEs can already do this).</description>
		<content:encoded><![CDATA[<p>Nothing wrong with waiting until you need something before getting it. Just because many of our tools are &#8220;free software&#8221; doesn&#8217;t mean that we &#8216;infovores&#8217; shouldn&#8217;t be wary of unchecked consumerism and greed! In fact we need to be even more careful of gorging because the barrier-to-consumption is so low.</p>
<p>I wish you could be more specific in which ways you feel that Maven isn&#8217;t maintaining focus. I&#8217;ve been reading about Maven, although haven&#8217;t yet used it; I have a couple of strong developer friends who very much like Maven &#8211; they feel that the rigidity of the file structure is a small price to pay for the convenience the platform offers. And from the look of it, I tend to agree (although I have to say the 22-step build model is a bit intimidating!)</p>
<p>WRT directory layout rigidity, there is something to be said for a one-size-fits all convention when it &#8220;doesn&#8217;t really matter&#8221;. Who cares where the directories are? If the world really agreed on suitable conventions our tools could nicely present our files to us however we like (and indeed, most IDEs can already do this).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Spiewak</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2542</link>
		<dc:creator>Daniel Spiewak</dc:creator>
		<pubDate>Thu, 29 Nov 2007 16:46:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2542</guid>
		<description>@Dalibor

A good point about the purpose for a build system.  In this respect, I think automake does a much better job than many modern, java-specific build systems (showing its maturity).  Unfortunately, most people (myself included) find automake fairly cryptic, not to mention inflexible in some areas such as build packaging and so on.

apt-get build-deps is great for C/C++ apps, but it just doesn&#039;t cover everything with Java.  There are so many third-party Java libraries, and a given application may use dozens of them.  Obtaining them all in the correct version is a pain to say the least.  To maven&#039;s credit, it does a good job in solving this problem...most of the time.  The more obscure libraries are much harder to deal with in a Maven build.  I&#039;m sort-of looking forward to playing with Ivy/Ant to see how it holds up in this respect.</description>
		<content:encoded><![CDATA[<p>@Dalibor</p>
<p>A good point about the purpose for a build system.  In this respect, I think automake does a much better job than many modern, java-specific build systems (showing its maturity).  Unfortunately, most people (myself included) find automake fairly cryptic, not to mention inflexible in some areas such as build packaging and so on.</p>
<p>apt-get build-deps is great for C/C++ apps, but it just doesn&#8217;t cover everything with Java.  There are so many third-party Java libraries, and a given application may use dozens of them.  Obtaining them all in the correct version is a pain to say the least.  To maven&#8217;s credit, it does a good job in solving this problem&#8230;most of the time.  The more obscure libraries are much harder to deal with in a Maven build.  I&#8217;m sort-of looking forward to playing with Ivy/Ant to see how it holds up in this respect.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dalibor Topic</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2541</link>
		<dc:creator>Dalibor Topic</dc:creator>
		<pubDate>Thu, 29 Nov 2007 13:25:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2541</guid>
		<description>FWIW, I happily use Automake for my Java applications. It does the job, while getting out the way, and letting me concentrate on the code, rather than figuring out the build system. It&#039;s as primitive as make is, but it does the one job well that I care about from a build system: let me build/rebuild the code as I need it, while making it easy for others to repeat what I&#039;ve done, and making it easy for me to ship source code tarballs letting them do that.

It doesn&#039;t have dependency management, but that&#039;s what apt-get build-deps is for, without having to hack it into the build tool. It doesn&#039;t have explicit JUnit support, but since automake files are very similar to regular makefiles, just a lot simpler, it&#039;s trivial to make it run junit, or anything else without having to hack the build tool first. It does not have CI support, but there is no lack of CI tools like buildbot that take care of all that, without me having to hack the build tool to support it.

I guess my point is that a good build system should do one thing well. That&#039;s entirely sufficient.</description>
		<content:encoded><![CDATA[<p>FWIW, I happily use Automake for my Java applications. It does the job, while getting out the way, and letting me concentrate on the code, rather than figuring out the build system. It&#8217;s as primitive as make is, but it does the one job well that I care about from a build system: let me build/rebuild the code as I need it, while making it easy for others to repeat what I&#8217;ve done, and making it easy for me to ship source code tarballs letting them do that.</p>
<p>It doesn&#8217;t have dependency management, but that&#8217;s what apt-get build-deps is for, without having to hack it into the build tool. It doesn&#8217;t have explicit JUnit support, but since automake files are very similar to regular makefiles, just a lot simpler, it&#8217;s trivial to make it run junit, or anything else without having to hack the build tool first. It does not have CI support, but there is no lack of CI tools like buildbot that take care of all that, without me having to hack the build tool to support it.</p>
<p>I guess my point is that a good build system should do one thing well. That&#8217;s entirely sufficient.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Law</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2539</link>
		<dc:creator>James Law</dc:creator>
		<pubDate>Wed, 28 Nov 2007 22:10:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2539</guid>
		<description>Thanks.
I&#039;ve settled on 
1. using ant for build/running tests
2. use maven for dependency management only, by using ant tasks that can pull out the maven dependencies- beyond that, maven never feels like I get the time I put into it back out.
3. use atlassian&#039;s cruise control : bamboo

Looking forward to what the ant/ivy partnership may bring...</description>
		<content:encoded><![CDATA[<p>Thanks.<br />
I&#8217;ve settled on<br />
1. using ant for build/running tests<br />
2. use maven for dependency management only, by using ant tasks that can pull out the maven dependencies- beyond that, maven never feels like I get the time I put into it back out.<br />
3. use atlassian&#8217;s cruise control : bamboo</p>
<p>Looking forward to what the ant/ivy partnership may bring&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Scherrey</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2529</link>
		<dc:creator>Ben Scherrey</dc:creator>
		<pubDate>Mon, 26 Nov 2007 15:01:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2529</guid>
		<description>Build systems require a LOT more than dependency tracking that make provided, especially with the advent of continuous integration. I consider a build environment for any significantly large project to be a software project of its own and Make is its &quot;assembly language&quot;. We need higher orders of abstractions and Ant&#039;s XML just didn&#039;t cut it. I&#039;ve gone through several systems the last few years (Scons was a strong &quot;almost got it&quot;) and have finally settled on Boost.Build v2 ( http://boost.org/boost-build2/ ) which has an extension of Perforce&#039;s Jam system and excellent environmental awareness &amp; extensibility. Its being re-written in Python and has reportedly gotten even faster. The DSL for Boost&#039;s bjam tool supports the declarative syntax that is more appropriate for a build system&#039;s rules than regular programming languages. Needs better examples on extensibility in the documentation but its been adopted by some critical projects and organizations and improves on a weekly basis. I think this one&#039;s got traction...</description>
		<content:encoded><![CDATA[<p>Build systems require a LOT more than dependency tracking that make provided, especially with the advent of continuous integration. I consider a build environment for any significantly large project to be a software project of its own and Make is its &#8220;assembly language&#8221;. We need higher orders of abstractions and Ant&#8217;s XML just didn&#8217;t cut it. I&#8217;ve gone through several systems the last few years (Scons was a strong &#8220;almost got it&#8221;) and have finally settled on Boost.Build v2 ( <a href="http://boost.org/boost-build2/" rel="nofollow">http://boost.org/boost-build2/</a> ) which has an extension of Perforce&#8217;s Jam system and excellent environmental awareness &amp; extensibility. Its being re-written in Python and has reportedly gotten even faster. The DSL for Boost&#8217;s bjam tool supports the declarative syntax that is more appropriate for a build system&#8217;s rules than regular programming languages. Needs better examples on extensibility in the documentation but its been adopted by some critical projects and organizations and improves on a weekly basis. I think this one&#8217;s got traction&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nils</title>
		<link>http://www.codecommit.com/blog/java/in-search-of-a-better-build-system/comment-page-1#comment-2528</link>
		<dc:creator>Nils</dc:creator>
		<pubDate>Mon, 26 Nov 2007 10:55:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/in-search-of-a-better-build-system#comment-2528</guid>
		<description>Another very nice buildsystem is OMake ( http://omake.metaprl.org/ ).

It keeps a lot of makes syntax and strenghts while beeing a clean functional and object oriented language. It can do cool tricks like clean beeng &quot;delete all artefacts can be regenerated by omake&quot;.</description>
		<content:encoded><![CDATA[<p>Another very nice buildsystem is OMake ( <a href="http://omake.metaprl.org/" rel="nofollow">http://omake.metaprl.org/</a> ).</p>
<p>It keeps a lot of makes syntax and strenghts while beeing a clean functional and object oriented language. It can do cool tricks like clean beeng &#8220;delete all artefacts can be regenerated by omake&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

