Apache Ivy & Spring

pizza1234

Erfahrenes Mitglied
Hallo,
ich versuche gerade, mit Ivy ein Paketmanagement einzurichten. Es funktioniert soweit ganz gut, nur leider lädt Ivy zum Beispiel beim Spring-Core Artefakt mir auch alle anderen Spring-Pakete (mit Abhängigkeiten) runter. Er sollte doch eigentlich nur das Core-Modul runterladen.
Hier mal der Auszug aus dem ivy.xml:

Code:
    <dependencies>
     	<dependency org="javax.servlet" 					name="servlet-api" 					rev="2.5"/>
		<dependency org="junit" 							name="junit" 						rev="4.4"/>
     	<dependency org="junit" 							name="junit" 						rev="3.8.2"/>
     	<dependency org="org.apache.tiles" 					name="tiles-api" 					rev="2.1.2"/>
        <dependency org="org.springframework" 				name="spring-core" 					rev="2.5.6"/>
        <dependency org="org.springframework" 				name="spring-webmvc" 				rev="2.5.6"/>
        <dependency org="org.springframework" 				name="spring-test" 					rev="2.5.6"/>
        <dependency org="org.springframework.security" 		name="spring-security-core" 		rev="2.0.4"/>
        <dependency org="org.springframework.security" 		name="spring-security-taglibs" 		rev="2.0.4"/>
        <dependency org="org.springframework.security" 		name="spring-security-catalina" 	rev="2.0.4"/>
        <dependency org="bouncycastle" 						name="bcprov-jdk16" 				rev="140"/>
        <dependency org="org.hibernate" 					name="hibernate-core" 				rev="3.3.1.GA"/>
        <dependency org="org.directwebremoting" 			name="dwr" 							rev="2.0.3"/>
        <dependency org="org.easymock" 						name="easymock" 					rev="2.4"/>
        <dependency org="org.apache.tiles" 					name="tiles-core" 					rev="2.1.2"/>
        <dependency org="org.opensymphony.quartz" 			name="quartz" 						rev="1.6.1"/>

 </dependencies

Wenn Ivy trotzdem alles runterlädt, mach das ja irgendwie keinen Sinn!
Da ich gerade erst mit Ivy begonnen habe, gibt es keine extra Konfigurationsfiles für Ivy, es wird also der Standard genommen!
Vielleicht wißt ihr ja, wo der Fehler liegt?

Grüße,
Peter
 
Maven/Ivy laden standardmäßig auch transitive Abhängigkeiten mit runter. Da der spring-core Abhängigkeiten zu anderen Spring-Modulen hat, werden diese auch mit gezogen.

Es müßte aber eine möglichkeit geben Ivy zu sagen dass er keine transitiven Abhängigkeiten für den core ziehen soll. Allerdings mußt du dann daran denken dass es eventuell zu Fehlern kommt wenn benötigte Klassen dadruch fehlen.
 
Hallo Zeja,
ja, es gibt ein
transitive="false"
in den Konfigurationseinstellungen. Aber irgendwie macht das alles für mich wenig Sinn, wenn besonders bei großen Libraries wie Spring,Spring Security & Hibernate immer alle Abhängigkeiten mit runtergeladen werden und ich fast die dreifache Menge an libs hab als vorher! Ich kann zwar mit
<exclude org="name.des.pakets" />
die libs aussortieren, die ich nicht brauche, aber das wäre in meinem Fall auch schon wieder eine riesige Liste!Außerdem weiß ich ja im Normalfall eigentlich nicht, welche abhängigen libs ich brauche und welche nicht! Ich kann ja schlecht alle mit in díe Anwendung packen!

Oder sehe ich das Paketmanagement grundsätzlich falsch?Sollen mir nur Pakete und Abhängigkeiten in mein Repository geladen werden und ich stelle dann von Hand die benötigten Libs zusammen und packe sie in meine Anwendung?

Grüße,
Peter
 
Spring core hat in Maven nur eine Abhängigkeit zu commons logging (daher ja auch core ;). Kannst du irgendwie sehen, wie das ivy config file für spring-core ausschaut? Vielleicht ist das verborkt? Welche zusätzlichen Pakete lädt er denn runter? Du hast ja z.B. auch Spring Web MVC und Spring Security dabei. Ich vermute eher, dass diese die transitiven Abhängigkeiten zu weiteren Spring Libs haben.

Gruß
Ollie
 
Spring core hat in Maven nur eine Abhängigkeit zu commons logging (daher ja auch core ;). Kannst du irgendwie sehen, wie das ivy config file für spring-core ausschaut? Vielleicht ist das verborkt? Welche zusätzlichen Pakete lädt er denn runter? Du hast ja z.B. auch Spring Web MVC und Spring Security dabei. Ich vermute eher, dass diese die transitiven Abhängigkeiten zu weiteren Spring Libs haben.

Gruß
Ollie
 
Ich hab festgestellt, das es die Kombination aus mehreren Artifakten ist, die mir die Libs so aufblähen. Über ein bestehendes Projekt Ivy zu stülpen, erscheint mir momentan dann doch aufwendiger, als die Libs selber zu pflegen. Ich werde es mal lieber beim nächsten Projekt von Anfang an ausprobieren!

Danke & Grüße,
Peter
 
Wenn du die Wahl hast, würd ich mal ein Auge auf Maven werfen. Dann hast du nur 1 Tool für Build und Dependency Management.

REINHAUN!
 
Zurück