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 Sebastian Hennebrueder <us...@laliluna.de> on 2008/08/18 12:44:21 UTC

enterprise repository

Hello,

I would like to define my own ivy configuration for existing projects 
like Hibernate for example.

I tried to do this with the publish task
<ivy:publish resolver="shared"  pubrevision="${revision}" 
status="release" />

but this task seems to require that I have at least one jar to publish. 
I cannot only publish an ivy file with the defined dependencies. But I 
would like just to rewrite the dependencies.

I read the discussion at 
http://www.mail-archive.com/ivy-user@ant.apache.org/msg00267.html

It states that I should use the install task, but this from my 
understanding does not allow to adjust the dependencies.

Well, I am wondering how to achieve this. Do you have any ideas?

Best Regards

Sebastian Hennebrueder
http://www.laliluna.de


Re: enterprise repository

Posted by Sebastian Hennebrueder <us...@laliluna.de>.
The workaround I found is the following:
configuration fetch
loads jars from maven with ivy:retrieve

other configuration redefines the dependencies

publish task, publishes now the jar, which was downloaded from maven

Is this the way to go?

Best Regards

Sebastian

Sebastian Hennebrueder schrieb:
> I still get an error. I post the error message and my configuration.
> publish:
> No ivy:settings found for the default reference 'ivy.instance'.  A 
> default instance will be used
>     [null] :: Ivy 2.0.0-beta2 - 20080225093827 :: 
> http://ant.apache.org/ivy/ ::
>     [null] :: loading settings :: file = 
> /home/hennebrueder/workspaces/iworkspace/repositoryinstall/ivysettings.xml
> [ivy:resolve] :: resolving dependencies :: 
> org.hibernate#core;working@lautlos
> [ivy:resolve]   confs: [default]
> [ivy:resolve]   found commons-lang#commons-lang;2.4 in public
> [ivy:resolve] :: resolution report :: resolve 78ms :: artifacts dl 3ms
>        
> ---------------------------------------------------------------------
>        |                  |            modules            ||   
> artifacts   |
>        |       conf       | number| search|dwnlded|evicted|| 
> number|dwnlded|
>        
> ---------------------------------------------------------------------
>        |      default     |   1   |   0   |   0   |   0   ||   1   |   
> 0   |
>        
> ---------------------------------------------------------------------
> [ivy:publish] :: publishing :: org.hibernate#core
> [ivy:publish] missing artifact org.hibernate#core;3.2.5.ga!core.jar:
> [ivy:publish]   
> /home/hennebrueder/workspaces/iworkspace/repositoryinstall/distrib/jars/core-3.2.5.ga.jar 
> file does not exist
> [ivy:publish]   published ivy to 
> /home/hennebrueder/.ivy2/shared/org.hibernate/core/3.2.5.ga/ivys/ivy.xml
> 
> BUILD FAILED
> /home/hennebrueder/workspaces/iworkspace/repositoryinstall/build.xml:11: 
> impossible to publish artifacts for org.hibernate#core;working@lautlos: 
> missing published artifacts for org.hibernate#core;working@lautlos: 
> [org.hibernate#core;3.2.5.ga!core.jar]
> 
> 
> Here is my ivy.xml
> <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
>    <!--xmlns="ivy"-->
>    <info    organisation="org.hibernate"
>        module="core"/>
> 
>    <configurations defaultconfmapping="default">
>        <conf name="default"/>
>    </configurations>
>    <publications>
>    </publications>
>          <dependencies>
> 
>        <dependency org="commons-lang" name="commons-lang" rev="2.4" 
> conf="default->default">
>            <artifact name="commons-lang" type="jar" ext="jar"/>
>                  </dependency>
> 
>    </dependencies>
> 
> </ivy-module>
> 
> ivysettings.xml
> <ivysettings>
>    <settings defaultResolver="public"/>
> 
>    <property name="ivy.shared.local.root" 
> value="${ivy.default.ivy.user.dir}/local" override="false"/>
>    <property name="ivy.shared.default.root" 
> value="${ivy.default.ivy.user.dir}/shared" override="false"/>
>    <property name="ivy.default.ivy.pattern" 
> value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"
>                        override="false"/>
>    <property name="ivy.default.artifact.pattern"
>                        
> value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" 
> override="false"/>
>    <resolvers>
>        <filesystem name="local">
>            <ivy 
> pattern="${ivy.shared.local.root}/${ivy.default.ivy.pattern}"/>
>            <artifact 
> pattern="${ivy.shared.local.root}/${ivy.default.artifact.pattern}"/>
>        </filesystem>
>        <filesystem name="shared">
>            <ivy 
> pattern="${ivy.shared.default.root}/${ivy.default.ivy.pattern}"/>
>            <artifact 
> pattern="${ivy.shared.default.root}/${ivy.default.artifact.pattern}"/>
>        </filesystem>
> 
>        <ibiblio name="public" m2compatible="true"  />
>        <filesystem name="import">
>            <artifact pattern="/tmp/import/[module]-[revision].[ext]" />
>        </filesystem>
>    </resolvers>
> </ivysettings>
> 
> build.xml
> <project xmlns:ivy="antlib:org.apache.ivy.ant" name="org.hibernate" 
> default="publish">
> 
>    <property name="revision" value="3.2.5.ga"/>
> 
>    <target name="publish" description="--> publish this project in the 
> ivy repository">
>        <ivy:resolve />
>        <ivy:publish     resolver="shared"
>            pubrevision="${revision}"
>            status="release"
>            overwrite="true"
>        />
> 
>        <echo message="project ${ant.project.name} released with version 
> ${revision}"/>
>    </target>
> 
>   </project>
> 
> Gilles Scokart schrieb:
>> If you have no artefact to publish, the ivy file that you want to
>> publish should have an empty publications tag.
>>
>> 2008/8/18 Sebastian Hennebrueder <us...@laliluna.de>:
>>  
>>> Hello,
>>>
>>> I would like to define my own ivy configuration for existing projects 
>>> like
>>> Hibernate for example.
>>>
>>> I tried to do this with the publish task
>>> <ivy:publish resolver="shared"  pubrevision="${revision}" 
>>> status="release"
>>> />
>>>
>>> but this task seems to require that I have at least one jar to 
>>> publish. I
>>> cannot only publish an ivy file with the defined dependencies. But I 
>>> would
>>> like just to rewrite the dependencies.
>>>
>>> I read the discussion at
>>> http://www.mail-archive.com/ivy-user@ant.apache.org/msg00267.html
>>>
>>> It states that I should use the install task, but this from my 
>>> understanding
>>> does not allow to adjust the dependencies.
>>>
>>> Well, I am wondering how to achieve this. Do you have any ideas?
>>>
>>> Best Regards
>>>
>>> Sebastian Hennebrueder
>>> http://www.laliluna.de
>>>
>>>
>>>     
>>
>>
>>
>>   
> 
> 


Re: enterprise repository

Posted by Sebastian Hennebrueder <us...@laliluna.de>.
I still get an error. I post the error message and my configuration.
publish:
No ivy:settings found for the default reference 'ivy.instance'.  A 
default instance will be used
     [null] :: Ivy 2.0.0-beta2 - 20080225093827 :: 
http://ant.apache.org/ivy/ ::
     [null] :: loading settings :: file = 
/home/hennebrueder/workspaces/iworkspace/repositoryinstall/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: 
org.hibernate#core;working@lautlos
[ivy:resolve]   confs: [default]
[ivy:resolve]   found commons-lang#commons-lang;2.4 in public
[ivy:resolve] :: resolution report :: resolve 78ms :: artifacts dl 3ms
        
---------------------------------------------------------------------
        |                  |            modules            ||   
artifacts   |
        |       conf       | number| search|dwnlded|evicted|| 
number|dwnlded|
        
---------------------------------------------------------------------
        |      default     |   1   |   0   |   0   |   0   ||   1   |   
0   |
        
---------------------------------------------------------------------
[ivy:publish] :: publishing :: org.hibernate#core
[ivy:publish] missing artifact org.hibernate#core;3.2.5.ga!core.jar:
[ivy:publish]   
/home/hennebrueder/workspaces/iworkspace/repositoryinstall/distrib/jars/core-3.2.5.ga.jar 
file does not exist
[ivy:publish]   published ivy to 
/home/hennebrueder/.ivy2/shared/org.hibernate/core/3.2.5.ga/ivys/ivy.xml

BUILD FAILED
/home/hennebrueder/workspaces/iworkspace/repositoryinstall/build.xml:11: 
impossible to publish artifacts for org.hibernate#core;working@lautlos: 
missing published artifacts for org.hibernate#core;working@lautlos: 
[org.hibernate#core;3.2.5.ga!core.jar]


Here is my ivy.xml
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
    <!--xmlns="ivy"-->
    <info    organisation="org.hibernate"
        module="core"/>

    <configurations defaultconfmapping="default">
        <conf name="default"/>
    </configurations>
    <publications>
    </publications>
       
    <dependencies>

        <dependency org="commons-lang" name="commons-lang" rev="2.4" 
conf="default->default">
            <artifact name="commons-lang" type="jar" ext="jar"/>
           
        </dependency>

    </dependencies>

</ivy-module>

ivysettings.xml
<ivysettings>
    <settings defaultResolver="public"/>

    <property name="ivy.shared.local.root" 
value="${ivy.default.ivy.user.dir}/local" override="false"/>
    <property name="ivy.shared.default.root" 
value="${ivy.default.ivy.user.dir}/shared" override="false"/>
    <property name="ivy.default.ivy.pattern" 
value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"
                        override="false"/>
    <property name="ivy.default.artifact.pattern"
                        
value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" 
override="false"/>
    <resolvers>
        <filesystem name="local">
            <ivy 
pattern="${ivy.shared.local.root}/${ivy.default.ivy.pattern}"/>
            <artifact 
pattern="${ivy.shared.local.root}/${ivy.default.artifact.pattern}"/>
        </filesystem>
        <filesystem name="shared">
            <ivy 
pattern="${ivy.shared.default.root}/${ivy.default.ivy.pattern}"/>
            <artifact 
pattern="${ivy.shared.default.root}/${ivy.default.artifact.pattern}"/>
        </filesystem>

        <ibiblio name="public" m2compatible="true"  />
        <filesystem name="import">
            <artifact pattern="/tmp/import/[module]-[revision].[ext]" />
        </filesystem>
    </resolvers>
</ivysettings>

build.xml
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="org.hibernate" 
default="publish">

    <property name="revision" value="3.2.5.ga"/>

    <target name="publish" description="--> publish this project in the 
ivy repository">
        <ivy:resolve />
        <ivy:publish     resolver="shared"
            pubrevision="${revision}"
            status="release"
            overwrite="true"
        />

        <echo message="project ${ant.project.name} released with version 
${revision}"/>
    </target>

   
</project>

Gilles Scokart schrieb:
> If you have no artefact to publish, the ivy file that you want to
> publish should have an empty publications tag.
>
> 2008/8/18 Sebastian Hennebrueder <us...@laliluna.de>:
>   
>> Hello,
>>
>> I would like to define my own ivy configuration for existing projects like
>> Hibernate for example.
>>
>> I tried to do this with the publish task
>> <ivy:publish resolver="shared"  pubrevision="${revision}" status="release"
>> />
>>
>> but this task seems to require that I have at least one jar to publish. I
>> cannot only publish an ivy file with the defined dependencies. But I would
>> like just to rewrite the dependencies.
>>
>> I read the discussion at
>> http://www.mail-archive.com/ivy-user@ant.apache.org/msg00267.html
>>
>> It states that I should use the install task, but this from my understanding
>> does not allow to adjust the dependencies.
>>
>> Well, I am wondering how to achieve this. Do you have any ideas?
>>
>> Best Regards
>>
>> Sebastian Hennebrueder
>> http://www.laliluna.de
>>
>>
>>     
>
>
>
>   


Re: enterprise repository

Posted by Gilles Scokart <gs...@gmail.com>.
If you have no artefact to publish, the ivy file that you want to
publish should have an empty publications tag.

2008/8/18 Sebastian Hennebrueder <us...@laliluna.de>:
> Hello,
>
> I would like to define my own ivy configuration for existing projects like
> Hibernate for example.
>
> I tried to do this with the publish task
> <ivy:publish resolver="shared"  pubrevision="${revision}" status="release"
> />
>
> but this task seems to require that I have at least one jar to publish. I
> cannot only publish an ivy file with the defined dependencies. But I would
> like just to rewrite the dependencies.
>
> I read the discussion at
> http://www.mail-archive.com/ivy-user@ant.apache.org/msg00267.html
>
> It states that I should use the install task, but this from my understanding
> does not allow to adjust the dependencies.
>
> Well, I am wondering how to achieve this. Do you have any ideas?
>
> Best Regards
>
> Sebastian Hennebrueder
> http://www.laliluna.de
>
>



-- 
Gilles Scokart