mirror of https://github.com/apache/ant-ivy
IVY-1485 Ensure dependency is applicable to all configurations
This commit is contained in:
parent
994fff7f62
commit
c6ae2533d5
|
|
@ -122,6 +122,7 @@ Here is the list of people who have contributed source code and documentation up
|
|||
* Stéphane Bailliez
|
||||
* Karl Baum
|
||||
* Andrew Bernhagen
|
||||
* Timothy Bingaman
|
||||
* Mikkel Bjerg
|
||||
* Per Arnold Blaasmo
|
||||
* Jeffrey Blattman
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ public class IvyNode implements Comparable<IvyNode> {
|
|||
return loadedRootModuleConfs.add(rootModuleConf);
|
||||
}
|
||||
|
||||
private boolean isRootModuleConfLoaded(String rootModuleConf) {
|
||||
public boolean isRootModuleConfLoaded(String rootModuleConf) {
|
||||
return loadedRootModuleConfs.contains(rootModuleConf);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ import org.apache.ivy.plugins.parser.ModuleDescriptorParserRegistry;
|
|||
import org.apache.ivy.plugins.repository.url.URLResource;
|
||||
import org.apache.ivy.plugins.resolver.DependencyResolver;
|
||||
import org.apache.ivy.plugins.version.VersionMatcher;
|
||||
import org.apache.ivy.util.ConfigurationUtils;
|
||||
import org.apache.ivy.util.Message;
|
||||
import org.apache.ivy.util.filter.Filter;
|
||||
|
||||
|
|
@ -329,11 +330,27 @@ public class ResolveEngine {
|
|||
String forcedRev = forcedRevisionId == null ? rev : forcedRevisionId
|
||||
.getRevision();
|
||||
|
||||
String[] moduleConfigurations = ConfigurationUtils.replaceWildcards(
|
||||
dd.getModuleConfigurations(), md);
|
||||
boolean dependencyConfApplicableToAllTopLevelDepConfs = true;
|
||||
for (String moduleConfiguration : moduleConfigurations) {
|
||||
if (!dependency.isRootModuleConfLoaded(moduleConfiguration)) {
|
||||
dependencyConfApplicableToAllTopLevelDepConfs = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// The evicted modules have no description, so we can't put the status
|
||||
String status = depDescriptor == null ? "?" : depDescriptor.getStatus();
|
||||
Message.debug("storing dependency " + depResolvedId + " in props");
|
||||
props.put(depRevisionId.encodeToString(), rev + " " + status + " "
|
||||
+ forcedRev + " " + depResolvedId.getBranch());
|
||||
String depRevisionIdString = depRevisionId.encodeToString();
|
||||
// don't replace a dep revision we've already added unless it is
|
||||
// applicable to all the confs of the matching top-level dep.
|
||||
if (!props.containsKey(depRevisionIdString)
|
||||
|| dependencyConfApplicableToAllTopLevelDepConfs) {
|
||||
props.put(depRevisionIdString, rev + " " + status + " " + forcedRev
|
||||
+ " " + depResolvedId.getBranch());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2312,6 +2312,197 @@ public class ResolveTest {
|
|||
assertFalse(getArchiveFileInCache("org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").exists());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case for IVY-1485.
|
||||
*
|
||||
* @throws Exception if something goes wrong
|
||||
* @see <a href="https://issues.apache.org/jira/browse/IVY-1485">IVY-1485</a>
|
||||
*/
|
||||
@Test
|
||||
public void testDeliverWithTransitiveDepsInDifferentConfs() throws Exception {
|
||||
ivy = Ivy.newInstance();
|
||||
ivy.configure(new File("test/repositories/IVY-1485/ivysettings.xml"));
|
||||
|
||||
ResolveOptions opts = new ResolveOptions();
|
||||
opts.setConfs(new String[] {"*"});
|
||||
opts.setResolveId("resolveid");
|
||||
opts.setTransitive(true);
|
||||
|
||||
ResolveReport report = ivy.resolve(
|
||||
new File("test/repositories/IVY-1485/ivy-simple.xml").toURI().toURL(), opts);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
ModuleRevisionId modAExpectedRevId = ModuleRevisionId.newInstance("simple", "modA", "5");
|
||||
|
||||
// check that the resolve report has the expected results, namely that the transitive dep on modA#1 has not
|
||||
// overridden the direct dep on modA#5. This is about testing the consistency of results between the resolve
|
||||
// report and the delivered descriptor.
|
||||
|
||||
Set reportMrids = report.getConfigurationReport("conf1").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Collections.singletonList(modAExpectedRevId)), reportMrids);
|
||||
|
||||
DeliverOptions dopts = new DeliverOptions();
|
||||
dopts.setGenerateRevConstraint(true);
|
||||
dopts.setConfs(new String[] { "*" });
|
||||
dopts.setStatus("release");
|
||||
dopts.setPubdate(new Date());
|
||||
dopts.setResolveId("resolveid");
|
||||
String pubrev = "1";
|
||||
String deliveryPattern = "build/test/deliver/assembly-[revision].xml";
|
||||
|
||||
ivy.deliver(pubrev, deliveryPattern, dopts);
|
||||
|
||||
// now check that the resolve report has the same info as the delivered descriptor
|
||||
|
||||
File deliveredIvyFile = new File("build/test/deliver/assembly-1.xml");
|
||||
assertTrue(deliveredIvyFile.exists());
|
||||
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(
|
||||
ivy.getSettings(), deliveredIvyFile.toURI().toURL(), false);
|
||||
DependencyDescriptor[] dds = md.getDependencies();
|
||||
assertEquals(2, dds.length);
|
||||
assertEquals(ModuleRevisionId.newInstance("simple", "modB", "1"), dds[1].getDependencyRevisionId());
|
||||
assertEquals(ModuleRevisionId.newInstance("simple", "modA", "5"), dds[0].getDependencyRevisionId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case for IVY-1485.
|
||||
*
|
||||
* @throws Exception if something goes wrong
|
||||
* @see <a href="https://issues.apache.org/jira/browse/IVY-1485">IVY-1485</a>
|
||||
*/
|
||||
@Test
|
||||
public void testDeliverWithTransitiveDepsInOverlappingConfsTransitiveNewer() throws Exception {
|
||||
ivy = Ivy.newInstance();
|
||||
ivy.configure(new File("test/repositories/IVY-1485/ivysettings.xml"));
|
||||
|
||||
ResolveOptions opts = new ResolveOptions();
|
||||
opts.setConfs(new String[] {"*"});
|
||||
opts.setResolveId("resolveid");
|
||||
opts.setTransitive(true);
|
||||
|
||||
ResolveReport report = ivy.resolve(
|
||||
new File("test/repositories/IVY-1485/ivy-overlap-transitive-newer.xml").toURI().toURL(), opts);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
ModuleRevisionId conf1ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-newer", "modA", "1");
|
||||
ModuleRevisionId conf2ModBExpectedRevId = ModuleRevisionId.newInstance("overlap-newer", "modB", "1");
|
||||
ModuleRevisionId conf2ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-newer", "modA", "5");
|
||||
ModuleRevisionId conf3ModBExpectedRevId = ModuleRevisionId.newInstance("overlap-newer", "modB", "1");
|
||||
ModuleRevisionId conf3ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-newer", "modA", "5");
|
||||
|
||||
Set<ModuleRevisionId> conf1ReportMrids = report.getConfigurationReport("conf1").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Collections.singletonList(conf1ModAExpectedRevId)), conf1ReportMrids);
|
||||
Set<ModuleRevisionId> conf2ReportMrids = report.getConfigurationReport("conf2").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf2ModBExpectedRevId, conf2ModAExpectedRevId)),
|
||||
conf2ReportMrids);
|
||||
Set<ModuleRevisionId> conf3ReportMrids = report.getConfigurationReport("conf3").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf3ModBExpectedRevId, conf3ModAExpectedRevId)),
|
||||
conf3ReportMrids);
|
||||
|
||||
DeliverOptions dopts = new DeliverOptions();
|
||||
dopts.setGenerateRevConstraint(true);
|
||||
dopts.setConfs(new String[] { "*" });
|
||||
dopts.setStatus("release");
|
||||
dopts.setPubdate(new Date());
|
||||
dopts.setResolveId("resolveid");
|
||||
String pubrev = "1";
|
||||
String deliveryPattern = "build/test/deliver/assembly-[revision].xml";
|
||||
|
||||
ivy.deliver(pubrev, deliveryPattern, dopts);
|
||||
|
||||
// now check that the resolve report has the same info as the delivered descriptor
|
||||
|
||||
File deliveredIvyFile = new File("build/test/deliver/assembly-1.xml");
|
||||
assertTrue(deliveredIvyFile.exists());
|
||||
|
||||
ResolveReport report2 = ivy.resolve(deliveredIvyFile.toURI().toURL(), opts);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
Set<ModuleRevisionId> conf1ReportMrids2 = report2.getConfigurationReport("conf1").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Collections.singletonList(conf1ModAExpectedRevId)), conf1ReportMrids2);
|
||||
Set<ModuleRevisionId> conf2ReportMrids2 = report2.getConfigurationReport("conf2").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf2ModBExpectedRevId, conf2ModAExpectedRevId)),
|
||||
conf2ReportMrids2);
|
||||
Set<ModuleRevisionId> conf3ReportMrids2 = report2.getConfigurationReport("conf3").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf3ModBExpectedRevId, conf3ModAExpectedRevId)),
|
||||
conf3ReportMrids2);
|
||||
|
||||
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(
|
||||
ivy.getSettings(), deliveredIvyFile.toURI().toURL(), false);
|
||||
DependencyDescriptor[] dds = md.getDependencies();
|
||||
assertEquals(2, dds.length);
|
||||
assertEquals(ModuleRevisionId.newInstance("overlap-newer", "modA", "1"), dds[0].getDependencyRevisionId());
|
||||
assertEquals(ModuleRevisionId.newInstance("overlap-newer", "modB", "1"), dds[1].getDependencyRevisionId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case for IVY-1485.
|
||||
*
|
||||
* @throws Exception if something goes wrong
|
||||
* @see <a href="https://issues.apache.org/jira/browse/IVY-1485">IVY-1485</a>
|
||||
*/
|
||||
@Test
|
||||
public void testDeliverWithTransitiveDepsInOverlappingConfsTransitiveOlder() throws Exception {
|
||||
ivy = Ivy.newInstance();
|
||||
ivy.configure(new File("test/repositories/IVY-1485/ivysettings.xml"));
|
||||
|
||||
ResolveOptions opts = new ResolveOptions();
|
||||
opts.setConfs(new String[] {"*"});
|
||||
opts.setResolveId("resolveid");
|
||||
opts.setTransitive(true);
|
||||
|
||||
ResolveReport report = ivy.resolve(
|
||||
new File("test/repositories/IVY-1485/ivy-overlap-transitive-older.xml").toURI().toURL(), opts);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
ModuleRevisionId conf1ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-older", "modA", "5");
|
||||
ModuleRevisionId conf2ModBExpectedRevId = ModuleRevisionId.newInstance("overlap-older", "modB", "1");
|
||||
ModuleRevisionId conf2ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-older", "modA", "5");
|
||||
ModuleRevisionId conf3ModBExpectedRevId = ModuleRevisionId.newInstance("overlap-older", "modB", "1");
|
||||
ModuleRevisionId conf3ModAExpectedRevId = ModuleRevisionId.newInstance("overlap-older", "modA", "1");
|
||||
|
||||
Set<ModuleRevisionId> conf1ReportMrids = report.getConfigurationReport("conf1").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Collections.singletonList(conf1ModAExpectedRevId)), conf1ReportMrids);
|
||||
Set<ModuleRevisionId> conf2ReportMrids = report.getConfigurationReport("conf2").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf2ModBExpectedRevId, conf2ModAExpectedRevId)),
|
||||
conf2ReportMrids);
|
||||
Set<ModuleRevisionId> conf3ReportMrids = report.getConfigurationReport("conf3").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf3ModBExpectedRevId, conf3ModAExpectedRevId)),
|
||||
conf3ReportMrids);
|
||||
|
||||
DeliverOptions dopts = new DeliverOptions();
|
||||
dopts.setGenerateRevConstraint(true);
|
||||
dopts.setConfs(new String[] { "*" });
|
||||
dopts.setStatus("release");
|
||||
dopts.setPubdate(new Date());
|
||||
dopts.setResolveId("resolveid");
|
||||
String pubrev = "1";
|
||||
String deliveryPattern = "build/test/deliver/assembly-[revision].xml";
|
||||
|
||||
ivy.deliver(pubrev, deliveryPattern, dopts);
|
||||
|
||||
// now check that the resolve report has the same info as the delivered descriptor
|
||||
|
||||
File deliveredIvyFile = new File("build/test/deliver/assembly-1.xml");
|
||||
assertTrue(deliveredIvyFile.exists());
|
||||
|
||||
ResolveReport report2 = ivy.resolve(deliveredIvyFile.toURI().toURL(), opts);
|
||||
assertFalse(report.hasError());
|
||||
|
||||
Set<ModuleRevisionId> conf1ReportMrids2 = report2.getConfigurationReport("conf1").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Collections.singletonList(conf1ModAExpectedRevId)), conf1ReportMrids2);
|
||||
Set<ModuleRevisionId> conf2ReportMrids2 = report2.getConfigurationReport("conf2").getModuleRevisionIds();
|
||||
assertEquals(new HashSet<>(Arrays.asList(conf2ModBExpectedRevId, conf2ModAExpectedRevId)),
|
||||
conf2ReportMrids2);
|
||||
|
||||
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(
|
||||
ivy.getSettings(), deliveredIvyFile.toURI().toURL(), false);
|
||||
DependencyDescriptor[] dds = md.getDependencies();
|
||||
assertEquals(2, dds.length);
|
||||
assertEquals(ModuleRevisionId.newInstance("overlap-older", "modA", "5"), dds[0].getDependencyRevisionId());
|
||||
assertEquals(ModuleRevisionId.newInstance("overlap-older", "modB", "1"), dds[1].getDependencyRevisionId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case for IVY-590.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-newer" module="projectassembly" revision="1"/>
|
||||
<configurations>
|
||||
<conf name="conf1"/>
|
||||
<conf name="conf2"/>
|
||||
<conf name="conf3"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency name="modA" rev="1" conf="conf1,conf2->default"/>
|
||||
<dependency name="modB" rev="1" conf="conf2,conf3->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-older" module="projectassembly" revision="1"/>
|
||||
<configurations>
|
||||
<conf name="conf1"/>
|
||||
<conf name="conf2"/>
|
||||
<conf name="conf3"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency name="modA" rev="5" conf="conf1,conf2->default"/>
|
||||
<dependency name="modB" rev="1" conf="conf2,conf3->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="simple" module="projectassembly" revision="1"/>
|
||||
<configurations>
|
||||
<conf name="conf1"/>
|
||||
<conf name="conf2"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency name="modA" rev="5" conf="conf1->default"/>
|
||||
<dependency name="modB" rev="1" conf="conf2->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivysettings>
|
||||
<settings defaultResolver="local" />
|
||||
<resolvers>
|
||||
<filesystem name="local" checkmodified="true" local="true">
|
||||
<ivy pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/ivy.xml"/>
|
||||
<artifact pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"/>
|
||||
</filesystem>
|
||||
</resolvers>
|
||||
</ivysettings>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-newer" module="modA" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-newer" module="modA" revision="5" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-newer" module="modB" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="overlap-newer" name="modA" rev="5" conf="default->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-older" module="modA" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-older" module="modA" revision="5" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="overlap-older" module="modB" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="overlap-older" name="modA" rev="1" conf="default->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="simple" module="modA" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="simple" module="modA" revision="5" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
</ivy-module>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="simple" module="modB" revision="1" />
|
||||
<configurations>
|
||||
<conf name="default"/>
|
||||
</configurations>
|
||||
<publications>
|
||||
</publications>
|
||||
<dependencies>
|
||||
<dependency org="simple" name="modA" rev="1" conf="default->default"/>
|
||||
</dependencies>
|
||||
</ivy-module>
|
||||
Loading…
Reference in New Issue