In debug mode, the following exception during the retrieved was observed when trying to read the Ivy.xml file:
[ivy:retrieve] java.net.MalformedURLException: unknown protocol: windows message is "c" or Linux message is "cache path/ivy-[version].xml [ivy:retrieve] at java.net.URL.<init>(URL.java:593) [ivy:retrieve] at java.net.URL.<init>(URL.java:483) [ivy:retrieve] at java.net.URL.<init>(URL.java:432) [ivy:retrieve] at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.getSavedArtifactOrigin(DefaultRepositoryCacheManager.java:542) [ivy:retrieve] at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.doFindModuleInCache(DefaultRepositoryCacheManager.java:779) [ivy:retrieve] at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:1310) [ivy:retrieve] at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:541) [ivy:retrieve] at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:278) [ivy:retrieve] at org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:183) [ivy:retrieve] at org.apache.ivy.core.resolve.VisitNode.loadData(VisitNode.java:284) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:724) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:803) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:731) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:608) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:252) [ivy:retrieve] at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:208) [ivy:retrieve] at org.apache.ivy.Ivy.resolve(Ivy.java:507) The exception looks like issue, IVY-1566, which is resolved in 2.5.0-rc1. However, the exception still exists in this example which is using the 2.5.0-rc1 version. On Mon, Aug 13, 2018 at 8:51 AM, t4rockets <t4rock...@gmail.com> wrote: > Using the dependence example, it has been updated so that build time (new > and equal to now via <tstamp> task) and version number properties are > written to the dependee version file. The dependee Java code was also > updated to print the build time and version number. The Java code was > update to see what build time property was in the downloaded JAR. > > The issue seen is that if the dependee JAR is updated/replaced (compiled > again with a new build time property) but no version change using the > publish overwrite="true" option, the depender Ivy retrieve will not > downloaded the updated JAR (same version, different build time and > therefore a different check sum). It appears that Ivy knows there is an > update based on the debug information, but the download does not happen. > > The filesystem repository is being used to support local build so that > developer can build and test the code changes locally without a repository > manager (i.e, Nexus). > > If the version number is updated, the depender Ivy retrieve will download > the updated dependee JAR as expected. > > This issue has been recreated against 2.4.0 and 2.5.0-rc1 and show both > the same behavior. > > Code added to the dependee "jar" target using the ant-contrib if task > <tstamp> > <format property="build.time" pattern="dd-MMMM-yyyy+HH:mm: > ss"/> > </tstamp> > <propertyfile file="${classes.dir}/version.properties"> > <entry key="build.time" value="${build.time}"/> > </propertyfile> > <ac:if> > <equals arg1="${option.include.version}" arg2="true"/> > <ac:then> > <propertyfile file="${classes.dir}/version.properties"> > <entry key="version" type="int" operation="+" default="0"/> > </propertyfile> > </ac:then> > </ac:if> > Code update for the Main.java source code: > String buildTime = p.getProperty("build.time"); > if (version != null && buildTime != null ) { > return version + "-" + buildTime; > } > > The sequence of events to create: > > - cd dependence > - ant > - ant all > - Note the build time and version from the depender task > - cd dependee > - ant publish > - ant publish > - Note the new build time and version for each publish > - cd ../depender > - ant > - Note the build time and version for the run task (should be the > same as the last dependee publish task) > - cd ../dependee > - ant publish -Doption.include.version=false > - ant publish -Doption.include.version=false > - Note the new build time and but the version did not update > - cd ../depender > - ant > - Note the build time does not match the latest dependee JAR > (updated build time, same version). The build time is from the JAR the > last time the version was updated. > > > Several options have been tried on the depender ivy:resolve task without > success. Is there some way to get the retrieve to download the updated > dependee JAR when it is only updated/replaced (no new version)? > > Thanks, >