You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Peter Kahn <ci...@gmail.com> on 2011/05/12 23:45:57 UTC

Publish ibiblio + filesystem converts organisation to directories but ibiblio + ssh does not - Where did I go wrong?

Hi all,

Can someone point me to the right place to look to understand why publish
with filesystem artifact pattern expands [organisation] into directories
(repository/com/foo/bar/) but ssh doesn't (repository/com.foo.bar/)?

I'm publishing to a maven style repository (local and nexus).  The local
uses filesystem which converts '.'  from [organisation] into sub directories
and ssh does not.  I can hard code the path since my org/groupID isn't
likely to change but I'm perplexed.

Ivysettings.xml
<filesystem name="local-m2-publish" m2compatible="true">
<artifact
pattern="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</filesystem>

<ssh name="nexus-m2-publish-snapshot" user="nexus-user" host="mynexus"
keyFile="${user.home}/.ssh/mykey">
<artifact
pattern="ssh://mynexus/nexus/storage/repos-snap/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</ssh>

ivy.xml
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven"> <info
organisation="com.foo.bar" module="mylibrary" revision="${revision}" />
<configurations> <conf name="default"/> <conf name="sources"/>
</configurations> <publications> <artifact name="mylibrary" ext="pom"
type="pom" conf="default"/> <artifact name="mylibrary" ext="jar" type="jar"
conf="default"/> </publications> </ivy-module>


The two publish calls are identical except for the resolver

<ivy:publish resolver="local-m2-publish" forcedeliver="true"
overwrite="true"
module="mylibrary" srcivypattern="ivy.xml" publishivy="false">
<artifacts pattern="${target}/[artifact].[ext]"/>
</ivy:publish>

Please let me know if you see what I'm missing or where's the right place to
find out how pattern's used by ssh.  I have the source and was going to look
there since I can find an answer in the docs.

Thanks for the help

Peter

-- 
Peter Kahn
citizenkahn@gmail.com
http://www.google.com/profiles/citizenkahn
Awareness - Intention - Action

Re: Publish ibiblio + filesystem converts organisation to directories but ibiblio + ssh does not - Where did I go wrong?

Posted by Geoff Clitheroe <g....@gmail.com>.
If this works on your O/S it may be a good option:

http://fuse.sourceforge.net/sshfs.html

-G


On Fri, May 13, 2011 at 11:24 AM, Peter Kahn <ci...@gmail.com> wrote:
> Thanks.  I guess I could figure out the a way to mount the directory via
> cifs and use file system.  I keep on seeing people favor file system over
> ssh and I couldn't figure out why.  Perhaps this is the reason.
>
> Peter
>
> On Thu, May 12, 2011 at 5:57 PM, Geoff Clitheroe <g....@gmail.com>wrote:
>
>> It's m2compatible that is making the difference.
>>
>> From
>> http://ant.apache.org/ivy/history/latest-milestone/resolver/filesystem.html
>>
>> ...'since 1.3 Using the m2compatible attribute, this resolver will
>> convert dots found in organisation in slashes like maven2 does for
>> groupId. For instance, it will transform the organisation from
>> 'com.company' into 'com/company' when replacing the token
>> [organisation] in your pattern.
>> Limitation: in m2compatible mode, this resolver is not able list
>> available organizations. It means some features like repreport are not
>> available'...
>>
>> I don't know if this is available on the ssh resolver.
>>
>> Cheers,
>> Geoff
>>
>>
>> On Fri, May 13, 2011 at 9:45 AM, Peter Kahn <ci...@gmail.com> wrote:
>> > Hi all,
>> >
>> > Can someone point me to the right place to look to understand why publish
>> > with filesystem artifact pattern expands [organisation] into directories
>> > (repository/com/foo/bar/) but ssh doesn't (repository/com.foo.bar/)?
>> >
>> > I'm publishing to a maven style repository (local and nexus).  The local
>> > uses filesystem which converts '.'  from [organisation] into sub
>> directories
>> > and ssh does not.  I can hard code the path since my org/groupID isn't
>> > likely to change but I'm perplexed.
>> >
>> > Ivysettings.xml
>> > <filesystem name="local-m2-publish" m2compatible="true">
>> > <artifact
>> >
>> pattern="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
>> > </filesystem>
>> >
>> > <ssh name="nexus-m2-publish-snapshot" user="nexus-user" host="mynexus"
>> > keyFile="${user.home}/.ssh/mykey">
>> > <artifact
>> >
>> pattern="ssh://mynexus/nexus/storage/repos-snap/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
>> > </ssh>
>> >
>> > ivy.xml
>> > <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
>> <info
>> > organisation="com.foo.bar" module="mylibrary" revision="${revision}" />
>> > <configurations> <conf name="default"/> <conf name="sources"/>
>> > </configurations> <publications> <artifact name="mylibrary" ext="pom"
>> > type="pom" conf="default"/> <artifact name="mylibrary" ext="jar"
>> type="jar"
>> > conf="default"/> </publications> </ivy-module>
>> >
>> >
>> > The two publish calls are identical except for the resolver
>> >
>> > <ivy:publish resolver="local-m2-publish" forcedeliver="true"
>> > overwrite="true"
>> > module="mylibrary" srcivypattern="ivy.xml" publishivy="false">
>> > <artifacts pattern="${target}/[artifact].[ext]"/>
>> > </ivy:publish>
>> >
>> > Please let me know if you see what I'm missing or where's the right place
>> to
>> > find out how pattern's used by ssh.  I have the source and was going to
>> look
>> > there since I can find an answer in the docs.
>> >
>> > Thanks for the help
>> >
>> > Peter
>> >
>> > --
>> > Peter Kahn
>> > citizenkahn@gmail.com
>> > http://www.google.com/profiles/citizenkahn
>> > Awareness - Intention - Action
>> >
>>
>
>
>
> --
> Peter Kahn
> citizenkahn@gmail.com
> http://www.google.com/profiles/citizenkahn
> Awareness - Intention - Action
>

Re: Publish ibiblio + filesystem converts organisation to directories but ibiblio + ssh does not - Where did I go wrong?

Posted by Peter Kahn <ci...@gmail.com>.
Thanks.  I guess I could figure out the a way to mount the directory via
cifs and use file system.  I keep on seeing people favor file system over
ssh and I couldn't figure out why.  Perhaps this is the reason.

Peter

On Thu, May 12, 2011 at 5:57 PM, Geoff Clitheroe <g....@gmail.com>wrote:

> It's m2compatible that is making the difference.
>
> From
> http://ant.apache.org/ivy/history/latest-milestone/resolver/filesystem.html
>
> ...'since 1.3 Using the m2compatible attribute, this resolver will
> convert dots found in organisation in slashes like maven2 does for
> groupId. For instance, it will transform the organisation from
> 'com.company' into 'com/company' when replacing the token
> [organisation] in your pattern.
> Limitation: in m2compatible mode, this resolver is not able list
> available organizations. It means some features like repreport are not
> available'...
>
> I don't know if this is available on the ssh resolver.
>
> Cheers,
> Geoff
>
>
> On Fri, May 13, 2011 at 9:45 AM, Peter Kahn <ci...@gmail.com> wrote:
> > Hi all,
> >
> > Can someone point me to the right place to look to understand why publish
> > with filesystem artifact pattern expands [organisation] into directories
> > (repository/com/foo/bar/) but ssh doesn't (repository/com.foo.bar/)?
> >
> > I'm publishing to a maven style repository (local and nexus).  The local
> > uses filesystem which converts '.'  from [organisation] into sub
> directories
> > and ssh does not.  I can hard code the path since my org/groupID isn't
> > likely to change but I'm perplexed.
> >
> > Ivysettings.xml
> > <filesystem name="local-m2-publish" m2compatible="true">
> > <artifact
> >
> pattern="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
> > </filesystem>
> >
> > <ssh name="nexus-m2-publish-snapshot" user="nexus-user" host="mynexus"
> > keyFile="${user.home}/.ssh/mykey">
> > <artifact
> >
> pattern="ssh://mynexus/nexus/storage/repos-snap/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
> > </ssh>
> >
> > ivy.xml
> > <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
> <info
> > organisation="com.foo.bar" module="mylibrary" revision="${revision}" />
> > <configurations> <conf name="default"/> <conf name="sources"/>
> > </configurations> <publications> <artifact name="mylibrary" ext="pom"
> > type="pom" conf="default"/> <artifact name="mylibrary" ext="jar"
> type="jar"
> > conf="default"/> </publications> </ivy-module>
> >
> >
> > The two publish calls are identical except for the resolver
> >
> > <ivy:publish resolver="local-m2-publish" forcedeliver="true"
> > overwrite="true"
> > module="mylibrary" srcivypattern="ivy.xml" publishivy="false">
> > <artifacts pattern="${target}/[artifact].[ext]"/>
> > </ivy:publish>
> >
> > Please let me know if you see what I'm missing or where's the right place
> to
> > find out how pattern's used by ssh.  I have the source and was going to
> look
> > there since I can find an answer in the docs.
> >
> > Thanks for the help
> >
> > Peter
> >
> > --
> > Peter Kahn
> > citizenkahn@gmail.com
> > http://www.google.com/profiles/citizenkahn
> > Awareness - Intention - Action
> >
>



-- 
Peter Kahn
citizenkahn@gmail.com
http://www.google.com/profiles/citizenkahn
Awareness - Intention - Action

Re: Publish ibiblio + filesystem converts organisation to directories but ibiblio + ssh does not - Where did I go wrong?

Posted by Geoff Clitheroe <g....@gmail.com>.
It's m2compatible that is making the difference.

>From http://ant.apache.org/ivy/history/latest-milestone/resolver/filesystem.html

...'since 1.3 Using the m2compatible attribute, this resolver will
convert dots found in organisation in slashes like maven2 does for
groupId. For instance, it will transform the organisation from
'com.company' into 'com/company' when replacing the token
[organisation] in your pattern.
Limitation: in m2compatible mode, this resolver is not able list
available organizations. It means some features like repreport are not
available'...

I don't know if this is available on the ssh resolver.

Cheers,
Geoff


On Fri, May 13, 2011 at 9:45 AM, Peter Kahn <ci...@gmail.com> wrote:
> Hi all,
>
> Can someone point me to the right place to look to understand why publish
> with filesystem artifact pattern expands [organisation] into directories
> (repository/com/foo/bar/) but ssh doesn't (repository/com.foo.bar/)?
>
> I'm publishing to a maven style repository (local and nexus).  The local
> uses filesystem which converts '.'  from [organisation] into sub directories
> and ssh does not.  I can hard code the path since my org/groupID isn't
> likely to change but I'm perplexed.
>
> Ivysettings.xml
> <filesystem name="local-m2-publish" m2compatible="true">
> <artifact
> pattern="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
> </filesystem>
>
> <ssh name="nexus-m2-publish-snapshot" user="nexus-user" host="mynexus"
> keyFile="${user.home}/.ssh/mykey">
> <artifact
> pattern="ssh://mynexus/nexus/storage/repos-snap/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
> </ssh>
>
> ivy.xml
> <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven"> <info
> organisation="com.foo.bar" module="mylibrary" revision="${revision}" />
> <configurations> <conf name="default"/> <conf name="sources"/>
> </configurations> <publications> <artifact name="mylibrary" ext="pom"
> type="pom" conf="default"/> <artifact name="mylibrary" ext="jar" type="jar"
> conf="default"/> </publications> </ivy-module>
>
>
> The two publish calls are identical except for the resolver
>
> <ivy:publish resolver="local-m2-publish" forcedeliver="true"
> overwrite="true"
> module="mylibrary" srcivypattern="ivy.xml" publishivy="false">
> <artifacts pattern="${target}/[artifact].[ext]"/>
> </ivy:publish>
>
> Please let me know if you see what I'm missing or where's the right place to
> find out how pattern's used by ssh.  I have the source and was going to look
> there since I can find an answer in the docs.
>
> Thanks for the help
>
> Peter
>
> --
> Peter Kahn
> citizenkahn@gmail.com
> http://www.google.com/profiles/citizenkahn
> Awareness - Intention - Action
>