<?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>Sonatype Blog &#187; Scala</title>
	<atom:link href="http://www.sonatype.com/people/tag/scala/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sonatype.com/people</link>
	<description>Sonatype is transforming software development with tools, information and services that enable organizations to build better software, faster, using open-source components.</description>
	<lastBuildDate>Thu, 09 Feb 2012 15:48:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Scala Artifacts Now on Central</title>
		<link>http://www.sonatype.com/people/2012/02/scala-artifacts-now-on-central/</link>
		<comments>http://www.sonatype.com/people/2012/02/scala-artifacts-now-on-central/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 14:06:54 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Maven Central]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[central]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9883</guid>
		<description><![CDATA[Two weeks ago, all Scala projects required a little bit of extra configuration to point to a custom repository for Scala artifacts hosted at scala-tools.org. Today, Scala artifacts are now available directly from Central. The contents of scala-tools.org are now integrated into the Sonatype OSS repository hosting service, and other projects have started to publish [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sonatype.com/people/wp-content/uploads/2012/02/scala1.png" alt="" title="scala" width="280" height="119" class="alignright size-full wp-image-9895" style="margin-left: 20px;"/></p>

<p>Two weeks ago, all Scala projects required a little bit of extra configuration to point to a custom repository for Scala artifacts hosted at scala-tools.org.  Today, Scala artifacts are now available directly from Central.  The contents of scala-tools.org are now integrated into the <a href="http://oss.sonatype.org">Sonatype OSS repository hosting service</a>, and other projects have started to publish artifacts Central.</p>

<p>The Scala community will see immediate benefits from this move.  There are no more extra repositories to configure.  It just got incrementally easier to use Scala.   If you are new to Scala, you don&#8217;t need to reconfigure your repository manager to proxy another remote repository.  The community will benefit from Sonatype&#8217;s continued investment in the infrastructure that runs Central: a cluster of machines in both the US and the EU continuously monitored by a dynamic DNS server that can reroute traffic instantly in the event of downtime.</p>

<p>How did this happen?  Joshua Suereth, David Bernard, and Derek Chen-Becker <a href="http://lift.la/scala-toolsorg-winding-down">provided the bulk</a> of the administrative work, and they recently decided to decommision this server and transition repository hosting to the free Sonatype OSS service.   Here&#8217;s <a href="http://www.scala-lang.org/node/12217">the announcement by Joshua Suereth</a> to the user forums on scala-lang.org on January 17th:</p>

<blockquote style="margin-left: 40px; margin-right: 40px; font-family: courier; font-size: 90%; margin-bottom: 20px;">Scala-tools.org is going down and not accepting any new OSS projects.   For those of us who wish to continue release software, I recommend migrating over to Sonatype.   They put a few (good practice) limitations on contributions, but scala-tools.org would have done the same before long anyway.   The benefit of Sonatype hosting is that your projects will make it onto the maven-central repository and benefit from the myriads of mirrors.   Here&#8217;s the link for how to get started contacting Sonatype:  <a href="http://nexus.sonatype.org/oss-repository-hosting.html">http://nexus.sonatype.org/oss-repository-hosting.html</a></blockquote>

<h2>Publishing Your Scala Project to Central via Sonatype OSS</h2>

<p>If you maintain a project that previously published to the scala-tools.org repository, here are three resources that provide guidance for Scala developers looking to publish Scala artifacts to Central:</p>

<ul>
  <li><a href="https://github.com/sbt/sbt.github.com/blob/gen-master/src/jekyll/using_sonatype.md">Publishing artifacts to Sonatype</a> instruction written by Joshua Suereth on publishing to Sonatype OSS</li>
  <li><a href="http://www.cakesolutions.net/teamblogs/2012/01/28/publishing-sbt-projects-to-nexus/">Publishing SBT Projects to Sonatype OSS</a> from Cake Solution&#8217;s Specs2 Spring Project</li>
  <li><a href="https://github.com/paulp/scala-improving/blob/master/project/PublishToSonatype.scala">PublishToSonatype.scala</a> some Scala code from Paul Phillips to automate the process of publishing artifacts to Sonatype&#8217;s OSS</li>
</ul>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/02/scala-artifacts-now-on-central/&via=SonatypeCM&text=Scala Artifacts Now on Central&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/02/scala-artifacts-now-on-central/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Build a Scala 2.8/Java Application with Maven</title>
		<link>http://www.sonatype.com/people/2010/03/how-to-build-a-scala-2-8java-application-with-maven/</link>
		<comments>http://www.sonatype.com/people/2010/03/how-to-build-a-scala-2-8java-application-with-maven/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:45:03 +0000</pubDate>
		<dc:creator>hloney</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4771</guid>
		<description><![CDATA[This mackaz.de blog post shows you how to build an application using Maven, with both Java and Scala source files.  Your project will be set up so that the Java-classes can access Scala-classes and vice versa. The project automatically uses the latest Scala 2.8-Snapshot until it’s released (Maven will look for the latest version of [...]]]></description>
			<content:encoded><![CDATA[<p><!--dzoneZ=none--><a href="http://www.sonatype.com/people/wp-content/uploads/2009/01/maven.png"><img class="alignright size-full wp-image-1488" title="maven" src="http://www.sonatype.com/people/wp-content/uploads/2009/01/maven.png" alt="" width="180" height="77" /></a>This <a href="http://mackaz.de/111" target="_blank">mackaz.de blog post</a> shows you how to build an application using Maven, with both Java and Scala source files.  Your project will be set up so that the Java-classes can access Scala-classes and vice versa.</p>

<blockquote>The project automatically uses the latest Scala 2.8-Snapshot until it’s  released (Maven will look for the latest version of the Scala language  each time you build it).  We will setup the project to use cross-compiling, so the java-classes  can access scala-classes and the other way around.</blockquote>

<p>To read the full tutorial, <a href="http://mackaz.de/111" target="_blank">click here</a>.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2010/03/how-to-build-a-scala-2-8java-application-with-maven/&via=SonatypeCM&text=How To Build a Scala 2.8/Java Application with Maven&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/03/how-to-build-a-scala-2-8java-application-with-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next Generation Maven Development Stack @ JFokus</title>
		<link>http://www.sonatype.com/people/2010/01/next-generation-maven-development-stack/</link>
		<comments>http://www.sonatype.com/people/2010/01/next-generation-maven-development-stack/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 05:21:05 +0000</pubDate>
		<dc:creator>Jason van Zyl</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[m2eclipse]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[GIT]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[jfokus]]></category>
		<category><![CDATA[peaberry]]></category>
		<category><![CDATA[polyglot]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=4113</guid>
		<description><![CDATA[For my talk today at JFokus today I&#8217;ve taken the liberty of starting some notes for folks interested in attending. There&#8217;s a lot to cover and so I thought I would try the approach of providing some material up front so the session can be more of a dialog. I&#8217;m going to attempt to cover [...]]]></description>
			<content:encoded><![CDATA[<p>For my talk today at JFokus today I&#8217;ve taken the liberty of starting some notes for folks interested in attending. There&#8217;s a lot to cover and so I thought I would try the approach of providing some material up front so the session can be more of a dialog. I&#8217;m going to attempt to cover everything in the picture below and save the demos folks might want to see for the Sonatype booth. Happy to chat with folks and do any demos before and after the presentation. Just stop by!</p>

<p><img src="http://www.sonatype.com/people/wp-content/uploads/2010/01/Stack1.png" alt="Stack.png" border="0" /></p>

<h3>Maven Stack Infrastructure</h3>

<p>I&#8217;m going to talk about some of the under pinnings of the technologies we&#8217;re using as part of our Maven work. Why we selected the technologes and some of the current work that&#8217;s happening.
<span id="more-4113"></span></p>

<ul>
<li><a href="http://code.google.com/p/google-guice/">Guice</a></li>
<li><a href="http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/">From Plexus to Guice (#1): Why Guice?</a></li>
<li><a href="http://www.sonatype.com/people/2010/01/from-plexus-to-guice-2-the-guiceplexus-bridge-and-custom-bean-injection/">From Plexus to Guice (#2): The Guice/Plexus Bridge and Custom Bean Injection</a></li>
<li><a href="http://www.sonatype.com/people/2010/01/from-plexus-to-guice-3-creating-a-guice-bean-extension-layer/">From Plexus to Guice (#3): Creating a Guice Bean Extension Layer</a></li>
<li><a href="http://code.google.com/p/peaberry/">Peaberry</a></li>
<li><a href="http://incubator.apache.org/shiro/">Apache Shiro</a></li>
<li><a href="http://enunciate.codehaus.org/">Enunciate</a></li>
</ul>

<h3>Maven</h3>

<p>There are several develops going on in the various Maven projects. Maven 3.x is on the way, but we have some very interesting work happing with OSGi within our Tycho project. The Flexmojos project and NAR (the C/++ framework for Maven) are also popular.</p>

<h4>Tycho</h4>

<ul>
<li><a href="http://tycho.sonatype.org/">Tycho Site</a></li>
<li><a href="http://github.com/sonatype/sonatype-tycho">Tycho @ Github</a></li>
<li><a href="http://github.com/sonatype/m2eclipse-tycho">Tycho/PDE Integration</a></li>
<li><a href="http://wiki.eclipse.org/Equinox_p2">P2 Site</a></li>
</ul>

<h4>Flexmojos</h4>

<ul>
<li><a href="http://flexmojos.sonatype.org/">Flexmojos Site</a></li>
</ul>

<h4>NAR</h4>

<ul>
<li><a href="http://duns.github.com/maven-nar-plugin/">NAR Site</a></li>
<li><a href="http://github.com/sonatype/maven-nar-plugin">NAR @ Github</a></li>
</ul>

<h3>M2Eclipse</h3>

<p>The primary IDE integration we work on at Sonatype. The most important thing to talk about in M2Eclipse is the configuration framework.</p>

<ul>
<li><a href="http://m2eclipse.sonatype.org/">M2Eclipse Site</a></li>
</ul>

<h3>Hudson</h3>

<p>Most of the work we&#8217;ve been doing on Hudson is still not really good enough for public consumption but we&#8217;re testing the changes we&#8217;re making on the Sonatype grid.</p>

<p><a href="https://hudson.dev.java.net/">Hudson Site</a></p>

<h3>Nexus</h3>

<ul>
<li><a href="http://nexus.sonatype.org">Nexus Site</a></li>
<li><a href="http://www.sonatype.com/people/2010/01/nexus-oss-ecosystem/">Nexus: Improving Maven Central and Supporting the Maven Ecosystem</a></li>
<li><a href="http://www.sonatype.com/people/2010/01/10-questions/">Selecting OSS Software: 10 Questions Answered for Sonatype Nexus</a></li>
<li><a href="http://nexus.sonatype.org/oss-repository-hosting.html">OSS Repository Hosting</a></li>
<li><a href="http://bundles.sonatype.org/index.html#welcome">OSGi Central</a></li>
<li>Ruby Central (We&#8217;re working on making that publicly available</li>
</ul>

<h3>Proviso</h3>

<p>Proviso is not publicly released yet, but Alin and I have been working together to get our provisioning framework ready for a public release.</p>

<h3>Git</h3>

<p>We are starting to use Git heavily and soon likely exclusively. We are helping out on the EGit, and JGit projects at Eclipse and we&#8217;re trying to put a little Git server together based on JGit, MINA, and Apache Shiro.</p>

<ul>
<li><a href="http://www.eclipse.org/jgit/">JGit Site</a></li>
<li><a href="http://www.eclipse.org/egit/">EGit Site</a></li>
<li><a href="http://aniszczyk.org/2010/01/25/egit-and-jgit-builds-available/">Tycho building EGit/JGit</a></li>
<li><a href="http://github.com/sonatype/sshjgit">SShJGit @ Github</a></li>
</ul>

<h3>Maven Extensions</h3>

<p>I&#8217;ll chat about these in the talk.</p>

<ul>
<li><a href="http://polyglot.sonatype.org/">Polyglot Maven Site</a></li>
<li><a href="http://github.com/sonatype/polyglot-maven">Polyglot Maven @ Github</a></li>
<li><a href="http://mvnsh.sonatype.org">Maven Shell</a></li>
<li><a href="https://github.com/sonatype/mvnsh">Maven Shell @ Github</a></li>
</ul>

<p>I&#8217;ll likely keep adding to the entry leading up the talk, but I thought I would get the ball rolling!</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2010/01/next-generation-maven-development-stack/&via=SonatypeCM&text=Next Generation Maven Development Stack @ JFokus&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2010/01/next-generation-maven-development-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven: Integration and Distributed, Open Innovation</title>
		<link>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/</link>
		<comments>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/#comments</comments>
		<pubDate>Fri, 08 May 2009 13:08:49 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=2161</guid>
		<description><![CDATA[Brian Murphy wrote a long blog post about the PAX Plugin which provides a good example of the power of Maven to act as an integration &#8220;bridge&#8221; between a number of unrelated technologies. In this post, Brian is using the PAX Maven Plugin from ops4j together with the gmaven-plugin and the maven-scala-plugin, he concludes with [...]]]></description>
			<content:encoded><![CDATA[<p>Brian Murphy wrote a <a href="http://tr.im/kP9w">long blog post about the PAX Plugin</a> which provides a good example of the power of Maven to act as an integration &#8220;bridge&#8221; between a number of unrelated technologies.   In this post, Brian is using the <a href="http://tr.im/kPcB">PAX Maven Plugin</a> from ops4j together with the <a href="http://groovy.codehaus.org/GMaven">gmaven-plugin</a> and the <a href="http://tr.im/kPbE">maven-scala-plugin</a>, he concludes with praise for Maven as an essential time saver:</p>

<blockquote>&#8220;This ended up being a much longer article than I anticipated but we&#8217;ve covered a lot of ground. Maven has worked it&#8217;s dependency voodoo which saved an enormous amount of time downloading jars and messing with classpaths. We&#8217;ve seen how the PAX toolkit from OPS4J makes creating, modifying and provisioning OSGi bundles a breeze. While the actual code examples were pretty trivial, we successfully managed to code up bundles in Java, Scala and Groovy. I think this displays a lot of the power that is offered by OSGi and points to a bright future for enterprise development on the JVM.&#8221;</blockquote>

<p><span id="more-2161"></span></p>

<h3>Project-driven Plugins: Distributed, Open Innovation</h3>

<p>In this case Maven is bridging a number of popular projects that have all created well-documented Maven plugins.    Maven is the essential &#8220;glue&#8221; that allows someone like Brian to take a number of unrelated technologies and use them in ways that the designers of GMaven or the Scala plugin could never have predicted.   As Maven matures and continues to evolve its Plugin API, we&#8217;re starting to see more projects and more systems commit to using it as an enabling &#8220;platform&#8221; for development.  Those projects that have adopted Maven have found it beneficial to host and drive the Maven plugins that relate to their project or technology.  <strong>Better support for Maven increases the adoption of Groovy, Scala, and (in this case) OSGi.</strong></p>

<p>The PAX plugin is maintained and hosted by the Ops4J project, the Scala plugin is hosted and maintained by the Scala community, and the GMaven plugin is hosted and maintained by the Groovy community.  Each community feels strongly enough about providing Maven support for their technology that they have made it a part of their project.   This is important because it suggests an evolving approach to the way Maven plugins are created and supported.   Four years ago, it was unlikely to see a project like Scala or Ops4J creating and hosting a Maven plugin.  While Maven was already ubiquitous, projects still didn&#8217;t see Maven support as a primary concern.  Instead, the plugin development would happen as part of the Maven community or in an ancillary community of Maven plugins known as the Mojo project at Codehaus.</p>

<p>Mojo is an important bridge.  It allows third-party actors to craft support for tools like JBoss and GWT, but it is an aggregate, disjoint community with a single mailing list, perfunctory release votes, and little shared discussion about architecture or planning.   It is a free-for-all.  While Mojo does host some essential plugins it is also a dumping grounds for half-finished, owner-less plugins.   As more projects provide their own Maven support, people should consider moving project from Mojo to the projects that develop the specific technologies in question.   This is the &#8220;distributed&#8221; open innovation that will encourage quality, well-documented plugins.</p>

<h3>Why Companies and Projects Need to &#8220;Own&#8221; Their Maven Support</h3>

<p>We&#8217;ve transitioned into a point where projects need to start hosting and owning the Maven plugins that enable developers to use their software.   Google would have been better off if they had invested a day or two crafting a solid Maven plugin for AppEngine before they announced Java support.   Similarly, they should think about driving the development of the GWT plugin.   If your project&#8217;s artifacts are available through the Central Maven repository, that is a first step, but if your project also publishes an artifact and a really compelling Maven plugin, you&#8217;ve made it trivial and easy for people to adopt your technology.   &#8220;Going to market&#8221; without good Maven support no longer makes sense, and you should know that more and more developers are start with the question &#8220;how does this fit into my Maven build?&#8221;  If your answer is &#8220;shrug, we don&#8217;t use Maven&#8221;, it is very likely that they will seek out other solutions that provide better integration.</p>

<p>If you are a tool vendor or create an open source framework, you should be hosting your own Maven plugin as a part of your project.   If you support an SCM like Perforce or Clearcase, you should make sure that your software provides a solid SCM provider for Maven.  If your company or project develops a server, you should be working with the Maven project to make sure that it integrates with Maven.   To do otherwise is to invite your customers or users to look elsewhere for better integration.    If you let someone else drive your Maven plugin, you are really just delegating an essential support function to the community.   The message you are sending is, &#8220;we don&#8217;t really care that you use Maven, it isn&#8217;t a priority, someone will do the integration work for us&#8221;.   This is true, but when that happens, you lose an opportunity to interact with your users and your customers.</p>

<p>PS: Brian&#8217;s post also inspired me to file <a href="https://issues.sonatype.org/browse/MVNDEF-96">this JIRA issue on the MVNDEF book project</a>.   Our book&#8217;s need code examples that can be more easily copied to the clipboard.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/&via=SonatypeCM&text=Maven: Integration and Distributed, Open Innovation&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2009/05/maven-integration-and-distributed-open-innovation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

