maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Janes <maven.apache....@peterjanes.ca>
Subject Re: Idea: maven uri's
Date Thu, 28 May 2009 05:31:19 GMT
I was in the process of writing a similar (but much longer) response, but 
Christian's covers most of the same ground.  I've only got two points to add.

Point 1: I think it's important not to conflate identifiers with other 
attributes.  In particular, "scope" and "optional" shouldn't be considered 
part of an identifier: foo:bar:1:jar is exactly the same thing whether it's in 
test scope or not.  Reusing one of Christian's examples, you'd wind up with

<dependency id="org.easymock:easymock:2.4:jar" scope="test" optional="false"/>

(Ignoring the fact that attributes are un-Maveny, of course---since we're 
bringing up "annoying" things!  Note that I've also updated the example 
slightly to use version:packaging, which is more sortable.)

Point 2: Using URI syntax would mean you can take advantage of the URI 
facilities that exist in pretty much every language used today.  In Java, for 
example, it would be easy to add a handler that would be applied to anything 
that supports URIs; you'd then be able to use Maven's repository resolution to 
retrieve resources.

Peter J.

On 27/05/09 11:58 PM, Christian Edward Gruber wrote:
> Fair comment.  Not less annoying.  It's less size (not bytes, but actual 
> typing... and to Brett's point, in Eclipse, I would be typing in a form, 
> not the raw pom.xml file, so it'd be the same regardless of how it's 
> represented in the pom.
> 
> Having said that, the ?params annoy me too, but I was responding to the 
> argument that it was non-deterministic to reverse-engineer.   That was 
> simply untrue.  And there might be less annoying approaches.
> 
> Frankly, I'm just as happy with 
> groupId:artifactId:packaging:version:scope.  You could even have a 
> collapse-order, so you can make terser expressions (which I think is the 
> case now).  I just want a clean, easy to human-read, not annoying to 
> type approach, ideally that only takes one line.  So I can read large 
> batches of them in one glance, instead of having to scroll of the screen.
> 
> Are these dealbreakers?  No.  But they're slightly less annoying to me 
> than XML.
> 
> Christian.
> 
> P.S.  Example of the above.  Really really easy to read.  Easy to sort,
> 
> <project>
>     <modelVersion>5.0.0</modelVersion>
>     <parent id="my.project:my-parent:1.5" />
>     <artifact id=":my-artifact-id:" /> <!-- inherits null entries from 
> parent -->
>     <packaging>war</packaging>
>     <dependencies>
>         <dependency id="org.springframework:spring-beans:2.5" />
>         <dependency id="org.springframework:spring-something-other:2.5" />
>         <dependency id="net.blah:blah-framework:3.3" />
>         <dependency id="my.project:my-project-flash-application:swf:1.5" />
>         <dependency id="org.easymock:easymock::2.4:test" /> <!-- jar is 
> default -->
>     </dependencies>
> </project>
> 
> 
> 
> On 27-May-09, at 23:35 , Brian Fox wrote:
> 
>> That's less annoying than the current format? Not to me that's for sure.
>>
>> On Wed, May 27, 2009 at 7:28 PM, Christian Edward Gruber <
>> christianedwardgruber@gmail.com> wrote:
>>
>>> I'm not sure how that pans out.
>>>
>>>
>>> mvn://net.israfil.foundation/foundation-container/1.1?optional&packaging=pom&scope=test

>>>
>>>
>>> Done.
>>>
>>> And there's no issue with reverse engineering.  The "host" is the 
>>> groupid,
>>> the first folder is the artifact, the last item is the version, and the
>>> supplemental attributes are uri parameters. (maybe there's a terser 
>>> wya to
>>> do that, but it's the best I can think of off-hand.)  There's nothing
>>> ambiguous there, is there?  It's also extensible.
>>>
>>> cheers,
>>> Christian.
>>>
>>>
>>> On 27-May-09, at 22:24 , Brian Fox wrote:
>>>
>>> The problem with this is two-fold actually,
>>>> The url representation currently doesn't encapsulate the other parts of
>>>> the
>>>> dependency declaration like optional or scope. Further, it is 
>>>> difficult to
>>>> deterministically reverse a url like that back to the GAV 
>>>> components... we
>>>> struggle with this often in Nexus when people have unusual artifact or
>>>> group
>>>> ids that make it hard for example to separate the group from the 
>>>> artifact,
>>>> or the version from the classifier.
>>>>
>>>> On Wed, May 27, 2009 at 2:06 PM, Jorg Heymans <jorg.heymans@gmail.com
>>>>> wrote:
>>>>
>>>> On Wed, May 27, 2009 at 3:55 PM, Christian Edward Gruber
>>>>> <christianedwardgruber@gmail.com> wrote:
>>>>>
>>>>> Anyway, I'm +1 on this.  It is clear, unambiguous, and terse.  Those
>>>>>> work
>>>>>> for me.
>>>>>>
>>>>>
>>>>> My thoughts exactly !
>>>>>
>>>>> Jorg
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>>
>>>>>
>>>>>
>>> Christian Edward Gruber
>>> e-mail: christianedwardgruber@gmail.com
>>> weblog: http://www.geekinasuit.com/
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
> 
> Christian Edward Gruber
> e-mail: christianedwardgruber@gmail.com
> weblog: http://www.geekinasuit.com/
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 


-- 
Sometimes the Universe needs a change of perspective.
   --J. Michael Straczynski


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Mime
View raw message