ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Obendorf, Keston" <keston.obend...@intel.com>
Subject RE: [conf] in artifactspattern
Date Thu, 15 Sep 2011 22:46:53 GMT
OK so here's a followup. It looks like the resolver can't figure out the [conf] either. I've
got the following resolver with the following ivy:publish:

    <filesystem name="local-bin-conf">
      <artifact pattern="${local.bin.dir}\[conf]\[artifact].[ext]"/>
      <ivy pattern="${local.bin.dir}\[type]\[module].[ext]"/>
    </filesystem>




    <ivy:publish resolver="local-bin-conf"
                 conf="binaries"
                 module="${ant.project.name}"
                 artifactspattern="bin\binaries\[artifact].[ext]"
                 revision="${build.revision}"
                 overwrite="true"
                 srcivypattern="ivy.xml"
                 status="${build.status}"
                 update="true"/>


Instead of publishing to ${local.bin.dir}\binaries\[artifact].[ext] as I would expect when
publishing the binaries conf, it publishes to ${local.bin.dir}\default\[artifact].[ext], as
if it were using the default configuration. Despite this, the correct artifacts were published
(the artifact was published iff it was in the binaries conf)

When I change the ivy:publish artifactspattern to bin\[conf]\[artifact].[ext] and build my
code to bin\default\[artifact].[ext], the publish continues with this behavior, so in both
ivy:publish and in the resolver, [conf] is resolving to 'default', even though it's demonstrated
by the artifacts that were published that at least some part of the Ivy system is using 'binaries'

Is there something I don't understand here, or could this be bug?

Thanks

From: Obendorf, Keston
Sent: Thursday, September 15, 2011 3:02 PM
To: 'ivy-user@ant.apache.org'
Subject: [conf] in artifactspattern

Is it possible to use [conf] in the artifactspattern for ivy:publish?

A little bit of background, our product needs to be compiled a little differently for creating
different installers, and so what happens is we just rebuild those binaries with a different
Configuration which defines a conditional compilation symbol (Our code is in .Net). This creates
multiple binaries with the same name, but with different code inside. We build these to bin\binaries,
bin\external_binaries, etc., depending on the configuration.

So for our Ivy files, I was thinking that we could separate these as different Ivy conf's.
With that decided, publishing the binaries will require [conf] in the artifactspattern:
    <ivy:publish resolver="local-bin"
                 conf="binaries"
                 module="${ant.project.name}"
                 artifactspattern="bin\[conf]\[artifact].[ext]"
                 revision="${build.revision}"
                 overwrite="true"
                 srcivypattern="ivy.xml"
                 status="${build.status}"
                 update="true"/>

When I run this task, I fail to publish anything:

impossible to publish artifacts for cevt#Kernel;0: java.io.IOException: missing artifact cevt.ssa#Kernel;0!SSA.dll

However, if I replace [conf] with an explicit name, it publishes fine.

    <ivy:publish resolver="local-bin"
                 conf="binaries"
                 module="${ant.project.name}"
                 artifactspattern="bin\binaries\[artifact].[ext]"
                 revision="${build.revision}"
                 overwrite="true"
                 srcivypattern="ivy.xml"
                 status="${build.status}"
                 update="true"/>


In the Ivy documentation it mentions that which properties are available can depend on what
operation you are doing. Am I right in assuming [conf] is not available in ivy:publish artifactspattern?


Also, here's the resolver, if it matters to the question:

    <filesystem name="local-bin">
      <artifact pattern="${local.bin.dir}\[artifact].[ext]" />
      <ivy pattern="${local.bin.dir}\ivy\[module].[ext]"/>
    </filesystem>


And the relevant parts of the ivy file.

<ivy-module version="1.0">
  <info organisation="cevt.ssa" module="Kernel"/>
  <configurations>
    <conf name="binaries" description="Includes all of the .dll files" />
      ......
  </configurations>
  <publications>
    <artifact name="SSA" type="dll" conf="binaries" ext="dll" />
      ......
  </publications>
</ivy-module>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message