<?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: Maven artifacts need to be more discoverable</title> <atom:link href="http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/feed/" rel="self" type="application/rss+xml" /><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/</link> <description>Rants about Java and other internet technologies by Sam Pullara</description> <lastBuildDate>Wed, 18 Jan 2012 14:14:00 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>By: E. Sammer</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1077</link> <dc:creator>E. Sammer</dc:creator> <pubDate>Tue, 18 May 2010 00:40:35 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1077</guid> <description>The issue with relying on URL structure is that not all institutions / projects serve their own artifacts / control their domain / control their infrastructure / can sacrifice carving out a particular URL namespace like this. The indirection - whether people like it not - serves a necessary purpose. As for the uber repository that supports redirection, that&#039;s what things like Nexus do.&lt;br&gt;&lt;br&gt;For the record, the single best (as in complete, accurate, well maintained metadata) Maven / Ivy repo to date is the SpringSource repo, hands down. Try it. &lt;a href=&quot;http://www.springsource.com/repository/app/&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/repository/app/&lt;/a&gt;</description> <content:encoded><![CDATA[<p>The issue with relying on URL structure is that not all institutions / projects serve their own artifacts / control their domain / control their infrastructure / can sacrifice carving out a particular URL namespace like this. The indirection &#8211; whether people like it not &#8211; serves a necessary purpose. As for the uber repository that supports redirection, that&#39;s what things like Nexus do.</p><p>For the record, the single best (as in complete, accurate, well maintained metadata) Maven / Ivy repo to date is the SpringSource repo, hands down. Try it. <a
href="http://www.springsource.com/repository/app/" rel="nofollow">http://www.springsource.com/repository/app/</a></p> ]]></content:encoded> </item> <item><title>By: spullara</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1076</link> <dc:creator>spullara</dc:creator> <pubDate>Mon, 17 May 2010 20:26:28 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1076</guid> <description>I guess my question is why can&#039;t we also introduce an automatic discovery mechanism that doesn&#039;t require the use of software beyond web servers and proxies.  As for the central mechanism, I think that a crawl + search model would work that doesn&#039;t actually store any artifacts.</description> <content:encoded><![CDATA[<p>I guess my question is why can&#39;t we also introduce an automatic discovery mechanism that doesn&#39;t require the use of software beyond web servers and proxies.  As for the central mechanism, I think that a crawl + search model would work that doesn&#39;t actually store any artifacts.</p> ]]></content:encoded> </item> <item><title>By: Jason van Zyl</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1075</link> <dc:creator>Jason van Zyl</dc:creator> <pubDate>Mon, 17 May 2010 18:19:01 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1075</guid> <description>As I&#039;ve always argued this is not a technical problem. Your argument is predicated on a supply of healthy Maven repositories which is simply not the current reality. What you&#039;re proposing is not lost of us, however. It starts with having healthy Maven repositories around the world and Sonatype has made a serious effort to get Nexus Pro instances in all of the major OSS forges around the world, and we also host a open instance (&lt;a href=&quot;http://oss.sonatype.org&quot; rel=&quot;nofollow&quot;&gt;http://oss.sonatype.org&lt;/a&gt;) that any project can use. The system can be more distributed for certain, but there are certain things that need to be done first. We have people working on this effort full-time.&lt;br&gt;&lt;br&gt;Organizations that use Maven effectively manage their own switchboard by using a repository manager like Nexus. There&#039;s just a lot of inertia and I would argue some some centralized form of store, switchboard, or discovery mechanism will always be desired to aggregate everything that exists into one manageable form.</description> <content:encoded><![CDATA[<p>As I&#39;ve always argued this is not a technical problem. Your argument is predicated on a supply of healthy Maven repositories which is simply not the current reality. What you&#39;re proposing is not lost of us, however. It starts with having healthy Maven repositories around the world and Sonatype has made a serious effort to get Nexus Pro instances in all of the major OSS forges around the world, and we also host a open instance (<a
href="http://oss.sonatype.org" rel="nofollow">http://oss.sonatype.org</a>) that any project can use. The system can be more distributed for certain, but there are certain things that need to be done first. We have people working on this effort full-time.</p><p>Organizations that use Maven effectively manage their own switchboard by using a repository manager like Nexus. There&#39;s just a lot of inertia and I would argue some some centralized form of store, switchboard, or discovery mechanism will always be desired to aggregate everything that exists into one manageable form.</p> ]]></content:encoded> </item> <item><title>By: jstrachan</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1073</link> <dc:creator>jstrachan</dc:creator> <pubDate>Mon, 17 May 2010 13:00:42 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1073</guid> <description>Am liking the use of URLs instead of dependency group/artifact/version tuples (particularly as often projects change their group/artifact ids or moves stuff to different repos which causes pain in poms). &lt;br&gt;&lt;br&gt;Then you could just run (on your local machine or on your WAN/LAN for your team) a regular caching http proxy to speed up mvn builds. &lt;br&gt;&lt;br&gt;It is nice having a global mirrored repo as a cache in case &lt;a href=&quot;http://sampullara.com&quot; rel=&quot;nofollow&quot;&gt;sampullara.com&lt;/a&gt; is down for example - but central repos could just rsync known repos and act as a backup http proxy cache.&lt;br&gt;&lt;br&gt;It&#039;d be nice to be able to do imports using URIs too in code...&lt;br&gt;&lt;br&gt;  import &lt;a href=&quot;http://cli-parser.sampullara.com/4.5&quot; rel=&quot;nofollow&quot;&gt;http://cli-parser.sampullara.com/4.5&lt;/a&gt;&lt;br&gt;&lt;br&gt;and the JVM could auto-download stuff on the fly...</description> <content:encoded><![CDATA[<p>Am liking the use of URLs instead of dependency group/artifact/version tuples (particularly as often projects change their group/artifact ids or moves stuff to different repos which causes pain in poms).</p><p>Then you could just run (on your local machine or on your WAN/LAN for your team) a regular caching http proxy to speed up mvn builds.</p><p>It is nice having a global mirrored repo as a cache in case <a
href="http://sampullara.com" rel="nofollow">sampullara.com</a> is down for example &#8211; but central repos could just rsync known repos and act as a backup http proxy cache.</p><p>It&#39;d be nice to be able to do imports using URIs too in code&#8230;</p><p> import <a
href="http://cli-parser.sampullara.com/4.5" rel="nofollow">http://cli-parser.sampullara.com/4.5</a></p><p>and the JVM could auto-download stuff on the fly&#8230;</p> ]]></content:encoded> </item> <item><title>By: Nagesh Susarla</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1072</link> <dc:creator>Nagesh Susarla</dc:creator> <pubDate>Mon, 17 May 2010 08:31:25 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1072</guid> <description>I love this idea! It certainly solves the resolution problem implicitly when you point to a URL.</description> <content:encoded><![CDATA[<p>I love this idea! It certainly solves the resolution problem implicitly when you point to a URL.</p> ]]></content:encoded> </item> <item><title>By: John Beatty</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1071</link> <dc:creator>John Beatty</dc:creator> <pubDate>Mon, 17 May 2010 06:52:34 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1071</guid> <description>I think it would be far easier if dependencies were simply specified as URLs and there was standard resource names under a root path.&lt;br&gt;&lt;br&gt;For example, &lt;a href=&quot;http://junit.org/releases/4.8.2&quot; rel=&quot;nofollow&quot;&gt;http://junit.org/releases/4.8.2&lt;/a&gt; would the base URL that you specify as a dependency, and the follow resources would exist:&lt;br&gt;&lt;a href=&quot;http://junit.org/releases/4.8.2/junit-4.8.2.jar&quot; rel=&quot;nofollow&quot;&gt;http://junit.org/releases/4.8.2/junit-4.8.2.jar&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://junit.org/releases/4.8.2/junit-4.8.2-src.tgz&quot; rel=&quot;nofollow&quot;&gt;http://junit.org/releases/4.8.2/junit-4.8.2-src...&lt;/a&gt;</description> <content:encoded><![CDATA[<p>I think it would be far easier if dependencies were simply specified as URLs and there was standard resource names under a root path.</p><p>For example, <a
href="http://junit.org/releases/4.8.2" rel="nofollow">http://junit.org/releases/4.8.2</a> would the base URL that you specify as a dependency, and the follow resources would exist:<br
/><a
href="http://junit.org/releases/4.8.2/junit-4.8.2.jar" rel="nofollow">http://junit.org/releases/4.8.2/junit-4.8.2.jar</a><br
/><a
href="http://junit.org/releases/4.8.2/junit-4.8.2-src.tgz" rel="nofollow">http://junit.org/releases/4.8.2/junit-4.8.2-src&#8230;</a></p> ]]></content:encoded> </item> <item><title>By: Ryan Kennedy</title><link>http://www.javarants.com/2010/05/16/maven-artifacts-need-to-be-self-discoverable/comment-page-1/#comment-1070</link> <dc:creator>Ryan Kennedy</dc:creator> <pubDate>Mon, 17 May 2010 06:49:56 +0000</pubDate> <guid
isPermaLink="false">http://www.javarants.com/?p=1302#comment-1070</guid> <description>It&#039;s a similar argument to dealing with Java packages. The &quot;standard&quot; was always reverse your domain (i.e. com.foo.bar.Baz), but there was no guarantee that going to &lt;a href=&quot;http://bar.foo.com&quot; rel=&quot;nofollow&quot;&gt;bar.foo.com&lt;/a&gt; would help you find the JAR containing Baz.class. Ultimately, you don&#039;t search for artifacts by group name and artifact name. Often what you want is to find the artifact that contains a particular class, because you found some code that uses com.foo.bar.Baz but you have no idea what artifact that&#039;s even a part of. It would be excellent if an ad hoc system for locating classes existed. Let some compiler tooling trawl through my code, notice I have a dependency on com.foo.bar.Baz, make requests to &lt;a href=&quot;http://bar.foo.com/artifacts/Baz.class&quot; rel=&quot;nofollow&quot;&gt;http://bar.foo.com/artifacts/Baz.class&lt;/a&gt; and &lt;a href=&quot;http://foo.com/artifacts/bar/Baz.class&quot; rel=&quot;nofollow&quot;&gt;http://foo.com/artifacts/bar/Baz.class&lt;/a&gt; until it finds an artifact that contains that particular class. Maybe even have that resource issue a redirect to a JAR resource like &lt;a href=&quot;http://foo.com/artifacts/bar.jar&quot; rel=&quot;nofollow&quot;&gt;http://foo.com/artifacts/bar.jar&lt;/a&gt;. Then the compiler can resolve all of the class dependencies to JAR redirects and download the uniques.&lt;br&gt;&lt;br&gt;I don&#039;t know, maybe a tad too automated. But at the end of the day, I spend a lot of time searching in our artifact repository for classes, finding out what artifact it&#039;s in, adding the artifact to my ivy.xml file (we use Ivy, but it&#039;s a similar experience with Maven) and then letting the build system download the artifact. Why not just let me declare my dependency on particular classes and have the tools resolve those to JARs and download them?</description> <content:encoded><![CDATA[<p>It&#39;s a similar argument to dealing with Java packages. The &#8220;standard&#8221; was always reverse your domain (i.e. com.foo.bar.Baz), but there was no guarantee that going to <a
href="http://bar.foo.com" rel="nofollow">bar.foo.com</a> would help you find the JAR containing Baz.class. Ultimately, you don&#39;t search for artifacts by group name and artifact name. Often what you want is to find the artifact that contains a particular class, because you found some code that uses com.foo.bar.Baz but you have no idea what artifact that&#39;s even a part of. It would be excellent if an ad hoc system for locating classes existed. Let some compiler tooling trawl through my code, notice I have a dependency on com.foo.bar.Baz, make requests to <a
href="http://bar.foo.com/artifacts/Baz.class" rel="nofollow">http://bar.foo.com/artifacts/Baz.class</a> and <a
href="http://foo.com/artifacts/bar/Baz.class" rel="nofollow">http://foo.com/artifacts/bar/Baz.class</a> until it finds an artifact that contains that particular class. Maybe even have that resource issue a redirect to a JAR resource like <a
href="http://foo.com/artifacts/bar.jar" rel="nofollow">http://foo.com/artifacts/bar.jar</a>. Then the compiler can resolve all of the class dependencies to JAR redirects and download the uniques.</p><p>I don&#39;t know, maybe a tad too automated. But at the end of the day, I spend a lot of time searching in our artifact repository for classes, finding out what artifact it&#39;s in, adding the artifact to my ivy.xml file (we use Ivy, but it&#39;s a similar experience with Maven) and then letting the build system download the artifact. Why not just let me declare my dependency on particular classes and have the tools resolve those to JARs and download them?</p> ]]></content:encoded> </item> </channel> </rss>
