<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mosabuam - Manfred Moser, Werner Moser and gang &#187; Maven</title>
	<atom:link href="http://www.mosabuam.com/tag/maven/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mosabuam.com</link>
	<description>... what&#039;s going on in the world of the brothers Moser boys (and their girls and kids)</description>
	<lastBuildDate>Sat, 14 Jan 2012 12:36:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Android artifacts to be published to Maven central repository?</title>
		<link>http://www.mosabuam.com/2009/11/android-artifacts-to-be-published-to-maven-central-repository</link>
		<comments>http://www.mosabuam.com/2009/11/android-artifacts-to-be-published-to-maven-central-repository#comments</comments>
		<pubDate>Sun, 08 Nov 2009 07:48:06 +0000</pubDate>
		<dc:creator>Admin of the System</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.mosabuam.com/?p=1679</guid>
		<description><![CDATA[So I have been dabbling with Android development for a bit and have been using Apache Maven for years. I recently started to provide some patches for the maven-android-plugin and came across the issue that the android.jar is not in maven central.. So something needed to be done. I contacted Jason van Zyl and then [...]]]></description>
			<content:encoded><![CDATA[<p>So I have been dabbling with <a href="http://www.android.com/" class="liexternal">Android</a> development for a bit and have been using <a href="http://maven.apache.org/ " class="liexternal">Apache Maven</a> for years. I recently started to provide some patches for the <a href="http://code.google.com/p/maven-android-plugin/" class="liexternal">maven-android-plugin</a> and came across the issue that the android.jar is not in <a href="http://repo1.maven.org/maven2/" class="liexternal">maven central</a>.. So something needed to be done.</p>
<p>I contacted <a href="http://twitter.com/jvanzyl" class="liexternal">Jason van Zyl<a/> and then <a href="http://twitter.com/crazybob">Bob Lee</a> on twitter and got support from both of them. Now I created <a href="http://bit.ly/1HoyoZ" class="liexternal">an issue on google code for the request</a> and I am in the process of publishing the request out to the world. I will track the progress with the comments to this post and potentially further posts. I really hope that this will happen with the push from the community just like it did with spring, jboss and google projects. I hope you will all help and retweet, <a href="http://bit.ly/1HoyoZ" class="liexternal">star the issue or leave a supporting comment there</a>. Lets see if we can get this happening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosabuam.com/2009/11/android-artifacts-to-be-published-to-maven-central-repository/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Company Super POM &#8211; A Maven Practice</title>
		<link>http://www.mosabuam.com/2009/10/company-super-pom-a-maven-practice</link>
		<comments>http://www.mosabuam.com/2009/10/company-super-pom-a-maven-practice#comments</comments>
		<pubDate>Thu, 29 Oct 2009 00:21:20 +0000</pubDate>
		<dc:creator>Manfred</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.mosabuam.com/?p=1655</guid>
		<description><![CDATA[Soon after the initial install of Maven you will hopefully like it and use it on a bunch of projects. You will notice that there are a bunch of things in the POM that are the same from project to project. Normally that is where the concept of a company or organisation POM appears. On [...]]]></description>
			<content:encoded><![CDATA[<p>Soon after the <a href="http://www.mosabuam.com/2009/08/installing-apache-maven-luxury-edition" class="liinternal">initial install</a> of Maven you will hopefully like it and use it on a bunch of projects. You will notice that there are a bunch of things in the POM that are the same from project to project. Normally that is where  the concept of a company or organisation POM appears.  On the other hand internally Maven always uses the Super POM as well. Once multiple projects are involved things quickly get confusing, so lets look at this a bit closer and then get to my hybrid approach of a Company Super POM.<br />
<span id="more-1655"></span></p>
<p>But first lets clear up some of the confusion around the terms. As well explained in the great book <a href="<a href=" http://www.sonatype.com/books/maven-book" class="liinternal">Maven: The Definitive Guide</a> the <a href="http://www.sonatype.com/books/maven-book/reference/pom-relationships-sect-pom.html#pom-relationships-sect-super-pom" class="liexternal">Super POM</a> is the Maven internal setup of all the parameters used by Maven by convention. Among other things these include paths and versions of the most common plugins.</p>
<p>A company POM on the other hand contains all settings and parameters that are shared across a whole company. Most of the time this means multiple projects, many developers, different scm paths and so on. In many cases it also means many more maven plugins and their versions as well as many dependencies in their different versions. Management of such a centralized POM can become difficult when version upgrades of libraries become an issue. E.g. one project might need the latest and greatest, while another one actually can not upgrade to that version due to the large refactoring overhead. This can lead to difficult situations and in my opinion highlights a problem with the company POM approach. Namely it tries to do too many things.</p>
<p>Hence it seems quite reasonable to extract all the Maven specific things from the company POM  and we have a Company Super POM. We can then slot the the new POM into the inheritance tree between the the super POM of the Maven install and a newer lighter and more focused company POM and its children in the form of project parent POMs. This will then act as the central place for settings related to Maven across the whole company. </p>
<p>Reason this makes sense are:</p>
<ul>
<li>most of the time there are only a few people (or one champion) responsible for all things Maven that bother tracking new versions and issues with existing versions of Maven and the host of plugins</li>
<li>it makes sense to standardize on one version of Maven across the company, even if the projects using it vary widely and have large differences with regards to libraries used and more, they could even work on different platforms thanks to the variety of Maven plugins. E.g. there are plugins for all things Java also for Flex or Android</li>
<p>Confused. No problem. Lets look at it all in more detail and create our mosabuam company super pom and then use it. First lets create the Company Super POM. Since it is a normal top level POM the header will just look like this:</p>
<pre class="brush: xml; title: ;">
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
         xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
         xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;groupId&gt;com.mosabuam.maven&lt;/groupId&gt;
    &lt;artifactId&gt;super-pom&lt;/artifactId&gt;
    &lt;packaging&gt;pom&lt;/packaging&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;name&gt;Mosabuam Maven Super POM&lt;/name&gt;
</pre>
<p>Notice how the packaging is just pom. Next we are going to manage our plugin versions. This is done with pluginManagement like this</p>
<pre class="brush: xml; title: ;">
...
    &lt;build&gt;
        &lt;pluginManagement&gt;
            &lt;plugins&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;com.agilejava.docbkx&lt;/groupId&gt;
                    &lt;artifactId&gt;docbkx-maven-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.0.9&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;com.jayway.maven.plugins.android.generation2&lt;/groupId&gt;
                    &lt;artifactId&gt;maven-android-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.2.0&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                    &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.2-beta-4&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                    &lt;artifactId&gt;maven-changelog-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.1&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                    &lt;artifactId&gt;maven-checkstyle-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.3&lt;/version&gt;
                &lt;/plugin&gt;
...
</pre>
<p>Depending on the plugins used in your various builds this list can get quite long. Ideally you would have all plugin versions locked down and defined in here. Luckily with Maven 3 (which you would have <a href="http://maven.apache.org/guides/development/guide-building-m2.html" class="liexternal">to build yourself</a> at the moment or <a href="https://grid.sonatype.org/ci/job/maven-3.0.x/" class="liexternal">get from the build grid</a>) you will actually get a warning if some plugin version is undefined.</p>
<p><code><br />
[WARNING]<br />
[WARNING] Some problems were encountered while building the effective model for com.jayway.maven.plugins.android.generation2:maven-android-plugin:maven-plugin:2.2.1-SNAPSHOT<br />
[WARNING] 'build.plugins.plugin.version' is missing for org.apache.maven.plugins:maven-scm-plugin @ com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.2.1-SNAPSHOT, /media/sdc1/java/dev/maven-android-plugin/pom.xml<br />
[WARNING] 'reporting.plugins.plugin.version' is missing for org.apache.maven.plugins:maven-plugin-plugin @ com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.2.1-SNAPSHOT, /media/sdc1/java/dev/maven-android-plugin/pom.xml<br />
[WARNING]<br />
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.<br />
[WARNING]<br />
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.<br />
[WARNING]<br />
</code><br />
The reason you want all version locked down is that it will allow you to consciously upgrade and ensure things don&#8217;t regress in your builds causing havoc for the development team (especially those not so deeply into Maven..). </p>
<p>Some plugins like in my case the <a href="http://docs.codehaus.org/display/GMAVEN/Home" class="liexternal">gmaven plugin</a> actually require other dependencies declared and ideally you want to keep all the versions of the plugin and the dependencies in sync. You can use properties and the dependencyManagement section for that:</p>
<pre class="brush: xml; title: ;">
...
    &lt;properties&gt;
        &lt;gmaven.version&gt;1.0&lt;/gmaven.version&gt;
        &lt;maven.version&gt;2.2.1&lt;/maven.version&gt;
    &lt;/properties&gt;

    &lt;dependencyManagement&gt;
        &lt;dependencies&gt;
            &lt;dependency&gt;
                &lt;groupId&gt;org.codehaus.groovy.maven&lt;/groupId&gt;
                &lt;artifactId&gt;gmaven-mojo&lt;/artifactId&gt;
                &lt;version&gt;${gmaven.version}&lt;/version&gt;
            &lt;/dependency&gt;
            &lt;dependency&gt;
                &lt;groupId&gt;org.codehaus.groovy.maven.runtime&lt;/groupId&gt;
                &lt;artifactId&gt;gmaven-runtime-1.6&lt;/artifactId&gt;
                &lt;version&gt;${gmaven.version}&lt;/version&gt;
            &lt;/dependency&gt;
        &lt;/dependencies&gt;
    &lt;/dependencyManagement&gt;
</pre>
<p>You might have noticed there there is also a maven.version property. This is used to enforce that everybody uses the correct version of Maven with the <a href="http://maven.apache.org/plugins/maven-enforcer-plugin/" class="liexternal">enforcer plugin</a>:</p>
<pre class="brush: xml; title: ;">
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-enforcer-plugin&lt;/artifactId&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;id&gt;enforce-maven&lt;/id&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;enforce&lt;/goal&gt;
                        &lt;/goals&gt;
                        &lt;configuration&gt;
                            &lt;rules&gt;
                                &lt;requireMavenVersion&gt;
                                    &lt;version&gt;[${maven.version},)&lt;/version&gt;
                                    &lt;message&gt;Check for Maven version &amp;gt;=${maven.version} failed. Update your Maven install.&lt;/message&gt;
                                &lt;/requireMavenVersion&gt;
                            &lt;/rules&gt;
                        &lt;/configuration&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;
            &lt;!--
                the versions plugin can be used to check for new plugin versions like this:
                mvn versions:display-plugin-updates
             --&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
                &lt;artifactId&gt;versions-maven-plugin&lt;/artifactId&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;
</pre>
<p>The <a href="http://mojo.codehaus.org/versions-maven-plugin/" class="liexternal">versions plugin</a> as configured above allows you to easily check for new versions with<br />
<code>mvn versions:display-plugin-updates</code>. With all that slapped together you are pretty much ready to go. Just put the pom file in a folder for the project e.g<br />
<code><br />
mosabuam-super-pom/pom.xml<br />
</code><br />
and run<br />
<code><br />
mvn clean install<br />
</code><br />
in the folder. This will put the pom into your local .m2 repository and it will be ready to be used from any project. To do that you simply declare it as the parent of your project like this</p>
<pre class="brush: xml; title: ;">
    &lt;parent&gt;
        &lt;groupId&gt;com.mosabuam.maven&lt;/groupId&gt;
        &lt;artifactId&gt;super-pom&lt;/artifactId&gt;
        &lt;version&gt;0.1&lt;/version&gt;
    &lt;/parent&gt;
    &lt;groupId&gt;com.mosabuam.example&lt;/groupId&gt;
    &lt;artifactId&gt;example&lt;/artifactId&gt;
    &lt;version&gt;1.1&lt;/version&gt;
</pre>
<p>Then you can remove all the versions from any plugin usage in your project so that e.g. an invocation of the <a href="http://code.google.com/p/maven-android-plugin/" class="liexternal">maven-android-plugin</a> could look like this </p>
<pre class="brush: xml; title: ;">
&lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;com.jayway.maven.plugins.android.generation2&lt;/groupId&gt;
                &lt;artifactId&gt;maven-android-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;sdk&gt;
                        &lt;path&gt;${env.ANDROID_HOME}&lt;/path&gt;
                        &lt;platform&gt;1.5&lt;/platform&gt;
                    &lt;/sdk&gt;
                    &lt;deleteConflictingFiles&gt;true&lt;/deleteConflictingFiles&gt;
                &lt;/configuration&gt;
                &lt;extensions&gt;true&lt;/extensions&gt;
            &lt;/plugin&gt;
</pre>
<p>Now all you have to do for a version upgrade of a plugin across all your projects is to update the version in the company super pom and update its version to e.g. 0.2</p>
<pre class="brush: xml; title: ;">
    &lt;groupId&gt;com.mosabuam.maven&lt;/groupId&gt;
    &lt;artifactId&gt;super-pom&lt;/artifactId&gt;
    &lt;packaging&gt;pom&lt;/packaging&gt;
    &lt;version&gt;0.2&lt;/version&gt;
    &lt;name&gt;Mosabuam Maven Super POM&lt;/name&gt;
</pre>
<p>and reference the new version number in the project POM. In a development team you would add a bit of configuration for your internal Nexus server and the version control system used along those lines:</p>
<pre class="brush: xml; title: ;">
    &lt;scm&gt;
        &lt;connection&gt;scm:svn:http://mosabuamsvn/repo/super-pom/trunk&lt;/connection&gt;
        &lt;developerConnection&gt;scm:svn:http://mosabuamsvn/repo/super-pom/trunk&lt;/developerConnection&gt;
    &lt;/scm&gt;
    &lt;distributionManagement&gt;
        &lt;repository&gt;
            &lt;id&gt;nexus&lt;/id&gt;
            &lt;name&gt;Mosabuam Nexus&lt;/name&gt;
            &lt;url&gt;http://nexusserver:8080/nexus/content/repositories/releases&lt;/url&gt;
        &lt;/repository&gt;
    &lt;/distributionManagement&gt;
</pre>
<p>With the passwords in your settings.xml you can then use the <a href="http://maven.apache.org/plugins/maven-release-plugin/" class="liexternal">release plugin</a> to cut a new release version easily as well as deploy it to Nexus, so it is available to all your project teams.<br />
<code><br />
mvn clean install<br />
mvn release:prepare<br />
mvn release:perform<br />
</code></p>
<p>With this approach you have all your maven related plugin versions fixed and you still have the freedom to have separate company POMs or project parent POMs that use different version of the same libraries and a whole slew of other settings. Let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosabuam.com/2009/10/company-super-pom-a-maven-practice/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Manfred&#039;s World on twitter this week &#8211; 2009-08-23</title>
		<link>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-23</link>
		<comments>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-23#comments</comments>
		<pubDate>Sun, 23 Aug 2009 06:30:00 +0000</pubDate>
		<dc:creator>Manfred</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-23</guid>
		<description><![CDATA[@tobrien Agreed. The Debian testing package is a bit more up to date. What I do though is http://tinyurl.com/lqp32g #maven #ubuntu #nexus in reply to tobrien # Downloaded Google Listen http://listen.googlelabs.com/index.html .. now off to go canoeing # Wow. John Willis from itmanagement is going to work on ubuntu one cloud. Look forward to the [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-1403"></span></p>
<ul class="aktt_tweet_digest">
<li>@<a href="http://twitter.com/tobrien" class="aktt_username">tobrien</a> Agreed. The Debian testing package is a bit more up to date. What I do though is <a href="http://tinyurl.com/lqp32g" rel="nofollow" class="liexternal">http://tinyurl.com/lqp32g</a> #<a href="http://search.twitter.com/search?q=%23maven" class="aktt_hashtag">maven</a> #<a href="http://search.twitter.com/search?q=%23ubuntu" class="aktt_hashtag">ubuntu</a> #<a href="http://search.twitter.com/search?q=%23nexus" class="aktt_hashtag">nexus</a> <a href="http://twitter.com/tobrien/statuses/3454168983" class="aktt_tweet_reply">in reply to tobrien</a> <a href="http://twitter.com/mosabua/statuses/3473882982" class="aktt_tweet_time">#</a></li>
<li>Downloaded Google Listen <a href="http://listen.googlelabs.com/index.html" rel="nofollow" class="liexternal">http://listen.googlelabs.com/index.html</a> .. now off to go canoeing <a href="http://twitter.com/mosabua/statuses/3451800200" class="aktt_tweet_time">#</a></li>
<li>Wow. John Willis from itmanagement is going to work on ubuntu one cloud. Look forward to the results. <a href="http://twitter.com/mosabua/statuses/3436905011" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/kellyrob99" class="aktt_username">kellyrob99</a> Promise to look at joda-time tomorrow..  <a href="http://joda-time.sourceforge.net/" rel="nofollow" class="liexternal">http://joda-time.sourceforge.net/</a> <a href="http://twitter.com/mosabua/statuses/3420200940" class="aktt_tweet_time">#</a></li>
<li>Enjoying the Victoria dragon boat races&#8230; <a href="http://twitter.com/mosabua/statuses/3348173520" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-23/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manfred&#039;s World on twitter this week &#8211; 2009-08-16</title>
		<link>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-16</link>
		<comments>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-16#comments</comments>
		<pubDate>Sun, 16 Aug 2009 06:30:00 +0000</pubDate>
		<dc:creator>Manfred</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-16</guid>
		<description><![CDATA[Listening to @omegataupodcast about bird migration with professor hans winkler. Went for a bird watching session with him as a kid long ago. # @dillyh .. I guess then it is not a power point presentation but just a presentation&#8230; # Laughing at a quote from @seradio 142 &#34;We build software architectures like cathedrals. First [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-1381"></span></p>
<ul class="aktt_tweet_digest">
<li>Listening to @<a href="http://twitter.com/omegataupodcast" class="aktt_username">omegataupodcast</a> about bird migration with professor hans winkler. Went for a bird watching session with him as a kid long ago. <a href="http://twitter.com/mosabua/statuses/3315575185" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/dillyh" class="aktt_username">dillyh</a> .. I guess then it is not a power point presentation but just a presentation&#8230; <a href="http://twitter.com/mosabua/statuses/3315506888" class="aktt_tweet_time">#</a></li>
<li>Laughing at a quote from @<a href="http://twitter.com/seradio" class="aktt_username">seradio</a> 142 &quot;We build software architectures like cathedrals. First we build it, then we pray.&quot; <a href="http://twitter.com/mosabua/statuses/3312502694" class="aktt_tweet_time">#</a></li>
<li>Hurting after leaving a bunch of skin on my sk8 deck. Better get back to podcast listening and renovating. <a href="http://twitter.com/mosabua/statuses/3311869115" class="aktt_tweet_time">#</a></li>
<li>Watching lots of maven related artifact updates getting into debian testing. Awesome work! <a href="http://twitter.com/mosabua/statuses/3311758161" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/jonobacon" class="aktt_username">jonobacon</a> .. yeah.. they are all pretty damn good looking, also bigger displays and more. Shipping outside the states however.. <a href="http://twitter.com/mosabua/statuses/3296060212" class="aktt_tweet_time">#</a></li>
<li>Even though I don&#39;t like to admit it MS Live Meeting works okay on Ubuntu Linux. Maybe because it is Java powered.. hahaha ;-) <a href="http://twitter.com/mosabua/statuses/3293881252" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/motodev" class="aktt_username">motodev</a> thanks for the linux version of the tools. Downloading now ;-) <a href="http://twitter.com/motodev/statuses/3287717285" class="aktt_tweet_reply">in reply to motodev</a> <a href="http://twitter.com/mosabua/statuses/3291035918" class="aktt_tweet_time">#</a></li>
<li>Bored out of my mind by Right Management career transition workshop. Coding in parallel. <a href="http://twitter.com/mosabua/statuses/3289895166" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/Brian_Fox" class="aktt_username">Brian_Fox</a> This service is unavailable on your device on all browser for me on Ubuntu. #<a href="http://search.twitter.com/search?q=%23fail" class="aktt_hashtag">fail</a> xenocode <a href="http://twitter.com/Brian_Fox/statuses/3288411632" class="aktt_tweet_reply">in reply to Brian_Fox</a> <a href="http://twitter.com/mosabua/statuses/3289813492" class="aktt_tweet_time">#</a></li>
<li>Facebook chat has connection problems .. #<a href="http://search.twitter.com/search?q=%23fail" class="aktt_hashtag">fail</a> <a href="http://twitter.com/mosabua/statuses/3289778402" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/abstratt" class="aktt_username">abstratt</a> look at the build helper plugin&#8230; <a href="http://twitter.com/abstratt/statuses/3274148784" class="aktt_tweet_reply">in reply to abstratt</a> <a href="http://twitter.com/mosabua/statuses/3274928147" class="aktt_tweet_time">#</a></li>
<li>Listening to agile executive podcast 5. Pretty good so far. Also found theheretech podcast. As usual there is lots to learn&#8230; <a href="http://twitter.com/mosabua/statuses/3268028962" class="aktt_tweet_time">#</a></li>
<li>No google voice for me in Canada. What a shame. Oh well.. downloading Maven 2.2.1 instead.. <a href="http://twitter.com/mosabua/statuses/3259674890" class="aktt_tweet_time">#</a></li>
<li>Off to shower after a day of home renovation and podcast listening (illegalargurment, linuxoutlaws, itmanagement, riaweekly, &#8230;) <a href="http://twitter.com/mosabua/statuses/3254441402" class="aktt_tweet_time">#</a></li>
<li>Just got my google voice invite. Sweet. <a href="http://twitter.com/mosabua/statuses/3238745705" class="aktt_tweet_time">#</a></li>
<li>VMWare buying Springsource and therefore getting Groovy. So will the installer for Groovy start to suck and Grails only work with Windows? <a href="http://twitter.com/mosabua/statuses/3235115459" class="aktt_tweet_time">#</a></li>
<li>Got my blog post &quot;Installing Apache Maven – Luxury Edition&quot; out there ;-) <a href="http://tinyurl.com/lqp32g" rel="nofollow" class="liexternal">http://tinyurl.com/lqp32g</a> <a href="http://twitter.com/mosabua/statuses/3221753529" class="aktt_tweet_time">#</a></li>
<li>Installing #<a href="http://search.twitter.com/search?q=%23nexus" class="aktt_hashtag">nexus</a> on my dev machine for local proxying and more. Could not use #<a href="http://search.twitter.com/search?q=%23maven" class="aktt_hashtag">maven</a> without it. <a href="http://twitter.com/mosabua/statuses/3220807527" class="aktt_tweet_time">#</a></li>
<li>Brushing up my resume. Should be ready to be spread around shortly. <a href="http://twitter.com/mosabua/statuses/3213867550" class="aktt_tweet_time">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mosabuam.com/2009/08/manfreds-world-on-twitter-this-week-2009-08-16/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Apache Maven &#8211; Luxury Edition</title>
		<link>http://www.mosabuam.com/2009/08/installing-apache-maven-luxury-edition</link>
		<comments>http://www.mosabuam.com/2009/08/installing-apache-maven-luxury-edition#comments</comments>
		<pubDate>Mon, 10 Aug 2009 07:21:34 +0000</pubDate>
		<dc:creator>Manfred</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mosabuam.com/?p=1371</guid>
		<description><![CDATA[As you might or might not know I have been using Apache Maven for quite a few years now and I have come to do all my development projects the maven way although I am probably not a full Maven maven. I am setting up a new development machine at home after being forced to [...]]]></description>
			<content:encoded><![CDATA[<p>As you might or might not know I have been using <a href="http://maven.apache.org/" class="liexternal">Apache Maven</a> for quite a few years now and I have come to do all my development projects the maven way although I am probably not a full Maven maven. I am setting up a new development machine at home after being forced to look for a new job so I might as well write down what I do, since it is probably a bit different from the normal install.</p>
<p><span id="more-1371"></span></p>
<p>For starters I am using <a href="http://www.ubuntu.com/" class="liexternal">Ubuntu</a> Linux and I could just install Maven from the repository like this</p>
<p><code>sudo aptitude install maven2</code></p>
<p>and be done with it. I actually do that as a first step. However this does not play nice with having the latest and greatest version of Maven and getting the benefit of the numerous new features and bug fixes from new releases. I could use the <a href="http://www.debian.org/releases/testing/" class="liexternal">Debian Testing</a> repository and use <a href="https://help.ubuntu.com/community/PinningHowto" class="liexternal">apt pinning</a> to stick with the version there, but things get hairy quickly that way. I also found I don&#8217;t have enough patience to wait for the package when a new release comes out, so I get the latest release from the<br />
<a href="http://maven.apache.org/download.html" class="liexternal">Apache site</a> and stick it into /opt/apache-maven-2.2.0, add a symlink /opt/maven <code>sudo ln -s /home/java/software/apache-maven-2.2.0/ maven</code> and add M2_HOME and a M2_HOME/bin to the PATH in my ~/.bashrc.</p>
<p>With this install I get the latest Maven release together with the command completion from the Debian package. So I can type mvn and then use tab and get a list of options and lifecycle goals as well as use tab for command completion(see /etc/bash_completion.d/maven2 for details). Pretty sweet. As a lazy programmer I go one step further and add a bunch of aliases to my ~/.bashrc for often used commands.</p>
<p><code><br />
alias mci='mvn clean install'<br />
alias mcc='mvn clean compile'<br />
alias mct='mvn clean test'<br />
alias mi='mvn install'<br />
alias mc='mvn compile'<br />
alias mct='mvn test'<br />
alias mcis='mvn clean install -Dmaven.test.skip=true'<br />
alias mis='mvn install -Dmaven.test.skip=true'<br />
alias mej='mvn exec:java'<br />
</code></p>
<p>Depending on projects I work with I also add specific aliases using profiles that need to used and more to additional aliases.</p>
<p>As the last but not least important job I install <a href="http://nexus.sonatype.org/" class="liexternal">Sonatype Nexus</a> as my local repository server. The instructions for the install in the <a href="http://www.sonatype.com/books/nexus-book/reference/index.html" class="liexternal">Nexus book</a> are all you need. I install Nexus on my developer machine for the following reasons:</p>
<ul>
<li>it acts as my local proxy allowing me to pretty much work offline smoothly without needing to use the offline mode in most cases.</li>
<li>I can clean out my ~/.m2/repository folder for debugging or other issues (IDE slowdown..) and getting things back afterwards is MUCH faster</li>
<li>I can use it to install thirdparty jars more permanently (e.g. the android jar or oracle jdbc driver jar) in a clean manner without polluting my ~/.m2/repository or depending on an external private repo server</li>
<li>I can test the release plugin usage against my local proxy server</li>
</ul>
<p>So there you have it. Thats all the steps I go through to install Maven and then I bathe in luxury ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mosabuam.com/2009/08/installing-apache-maven-luxury-edition/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

