In my project I have two separate source folders - /src where the code is and /test for mock and test objects.
On top of the standard jar (from /src) that ivy successfully publishes for my project I would like to publish another artifact through ivy that only includes the objects in the /test folder in order to be able to share these mock objects with other projects.
Can someone please provide an ivy configuration to support this?
1- You need to build a test-jar from the test-folder, lets call it project-test.jar
<javac destdir="build/test" srcdir="test/">
<classpath refid="test.classpath" />
</javac>
<jar destfile="dist/project-test.jar"
basedir="build/test"/>
2- Define an artifact in your ivy.xml
<publications>
<artifact name="project" type="jar" conf="default" ext="jar"/>
<artifact name="project-test" type="jar" conf="test ext="jar"/>
</publications>
3- Publish
<ivy:resolve
revision="${project.version}"
conf="compile,test"
/>
<!-- Alle Artifacts für compile mit dem jars resolver publishen -->
<ivy:publish
revision="${project.version}">
<artifacts pattern="dist/[artifact]-[revision].[type]" />
</ivy:publish>