-
Notifications
You must be signed in to change notification settings - Fork 0
/
ivy.xml
70 lines (68 loc) · 3.01 KB
/
ivy.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!-- Useful links:
[1] https://www.symphonious.net/2010/01/25/using-ivy-for-dependency-management/
[2] http://wrongnotes.blogspot.dk/2014/02/simplest-explanation-of-ivy.html
[3] http://ant.apache.org/ivy/history/2.2.0/ivyfile/configurations.html
[4] https://stackoverflow.com/questions/7046198/ignore-sources-jar-in-ivy-retrieve
-->
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
<info organisation="aram" module="mlms"/>
<!-- EXPLANATION:
<dependency> is a sub-element to <ivy-module>/<dependencies> and is another word for repository, i.e. what library do you need to fetch?
<configurations> organizes whatever we fetch with the <dependency> tags. For instance, some libraries are maybe only necessary for testing (ex. junit), some are just required to compile the code and should not be shipped with the production code, some libraries are just needed for the project jar (i.e. no javadoc, source code, other dependencies etc.) and so forth.
Notice here that we have two configurations: "default" and "optional". These configurations are made-up, but they have to correspond to something specified by the scope attribute in Maven because we fetch from a maven rep. Therefore, we add the attribute "defaultconfmapping" to say, FOR ALL DEPENDENCIES, what the two configurations map to on Maven.
Alternatively, it could be done seperately in the "conf" attribute for each <dependency>.
-->
<configurations
defaultconfmapping=
"default->default;
code-and-javadoc->default, javadoc;
optional->sources, javadoc;
natives->default">
<conf name="default" description="Default configuration"/>
<conf name="code-and-javadoc" description="Fetches project jar and javadoc"/>
<conf name="optional" description="Contains source code and documentation"/>
<conf name="natives" description="Contains all native libraries"/>
</configurations>
<dependencies>
<!-- JUnit testing and matchers -->
<dependency org="junit"
name="junit"
rev="4.12"
conf="code-and-javadoc"/>
<!-- Additionally, we map default to javadoc just to fetch it-->
<dependency org="org.hamcrest"
name="hamcrest-core"
rev="1.3"
conf="default"/>
<dependency org="org.assertj"
name="assertj-core"
rev="3.7.0"
conf="code-and-javadoc"/>
<!-- JAudiotagger should be 2.2.6 but it is not on the maven rep. yet. -->
<dependency org="net.jthink"
name="jaudiotagger"
rev="2.2.5"
conf="default;optional"/>
<!-- usb4java, a Java library to access USB devices -->
<!-- <dependency org="org.usb4java"
name="usb4java-javax"
rev="1.2.0"
conf="code-and-javadoc"/>
<dependency org="org.usb4java"
name="libusb4java"
rev="1.2.0"
conf="natives">
<artifact name="libusb4java" m:classifier="windows-x86_64"/>
</dependency>
-->
<!-- SLF4J logging and binding to Log4J -->
<!--
<dependency org="org.slf4j"
name="slf4j-api"
rev="1.7.21"/>
<dependency org="org.slf4j"
name="slf4j-log4j12"
rev="1.7.21"/>
-->
</dependencies>
</ivy-module>