Palm to face. I had two separate makepom in the build script and was modifying the wrong one, this worked fine
<ivy:makepom ivyfile="${basedir}/ivy.xml" conf="main,test" pomfile="${build.dir}/${artifact.name}.pom"> <mapping conf="main" scope="runtime"/> </ivy:makepom> Sorry, appreciated your answers though NxyzzzzzZZZZzzzz On Tue, Oct 16, 2012 at 3:16 PM, Matt Benson <gudnabr...@gmail.com> wrote: > I don't know why they're going to "optional" but why would you map > "main" to two different maven scopes, and what would you have expected > as a result? AFAIK a given artifact/classifier combination can only > be in one Maven scope. Presumably you want "main" to map to > "compile"... > > Matt > > On Tue, Oct 16, 2012 at 5:13 PM, Not Zippy <notzi...@gmail.com> wrote: > > Originally I had tried this : > > > > <mapping conf="main" scope="compile"/> > > <mapping conf="main" scope="runtime"/> > > > > and still the dependencies showed up as optional in the POM. Any other > > thoughts ? > > > > thanks > > Nz > > > > > > On Tue, Oct 16, 2012 at 3:02 PM, Matt Benson <gudnabr...@gmail.com> > wrote: > >> > >> Yes, the conf attribute should not be a mapping; rather it should just > >> be the name of one of your local configurations. > >> > >> Matt > >> > >> On Tue, Oct 16, 2012 at 4:49 PM, Not Zippy <notzi...@gmail.com> wrote: > >> > I have set the mapping > >> > > >> > <ivy:makepom ivyfile="${basedir}/ivy.xml" > >> > conf="default" > >> > pomfile="${build.dir}/${artifact.name}.pom"> > >> > <mapping conf="main->default" scope="compile"/> > >> > <mapping conf="main->default" scope="runtime"/> > >> > </ivy:makepom> > >> > > >> > It still generates the POM with optional dependencies. > >> > > >> > thanks > >> > Nz > >> > > >> > > >> > On Tue, Oct 16, 2012 at 2:20 PM, Matt Benson <gudnabr...@gmail.com> > >> > wrote: > >> >> > >> >> You should be able to control this by using <mapping> elements nested > >> >> into <makepom>. > >> >> > >> >> Matt > >> >> > >> >> On Tue, Oct 16, 2012 at 4:15 PM, Not Zippy <notzi...@gmail.com> > wrote: > >> >> > Hi > >> >> > > >> >> > For some reason I hadn't noticed till now that when I used ant + > ivy > >> >> > to > >> >> > build my POMS that it created all the dependencies as "optional" > >> >> > ie > >> >> > <dependency> > >> >> > <groupId>commons-io</groupId> > >> >> > <artifactId>commons-io</artifactId> > >> >> > <version>2.2</version> > >> >> > <optional>true</optional> > >> >> > </dependency> > >> >> > > >> >> > My ivy.xml looks like > >> >> > <ivy-module version="1.0"> > >> >> > <info > >> >> > organisation="xxx" > >> >> > module="ext-dx" > >> >> > status="integration"/> > >> >> > <configurations defaultconf="main"> > >> >> > <conf name="core" visibility="private" /> > >> >> > <conf name="common" extends="core" /> > >> >> > <conf name="main" extends="core" /> > >> >> > <conf name="default" extends="main" /> > >> >> > <conf name="resource" extends="core" /> > >> >> > <conf name="hidden" extends="core" /> > >> >> > <conf name="test" extends="common" /> > >> >> > </configurations> > >> >> > <publications> > >> >> > <artifact name="ext-dx" type="jar" conf="main"/> > >> >> > <artifact name="ext-dx" type="pom" conf="main"/> > >> >> > <artifact name="ext-dx-resource" type="zip" ext="zip" > >> >> > conf="main"/> > >> >> > <artifact name="ext-dx-sources" type="source" ext="jar" > >> >> > conf="main"/> > >> >> > </publications> > >> >> > <dependencies> > >> >> > <dependency conf="main->default" org="commons-io" > >> >> > name="commons-io" > >> >> > rev="2.2"/> > >> >> > .... > >> >> > > >> >> > Make pom is > >> >> > <ivy:makepom ivyfile="${basedir}/ivy.xml" > >> >> > conf="default" > >> >> > pomfile="${build.dir}/${artifact.name}.pom"> > >> >> > <mapping conf="default" scope="compile"/> > >> >> > <mapping conf="default" scope="runtime"/> > >> >> > </ivy:makepom> > >> >> > > >> >> > Anyone have idea why ? Can't see anything about it in the docs... > >> >> > > >> >> > THANKS > >> >> > nZ > >> > > >> > > > > > >