mit EFEU Abhängigkeiten-manager programmgesteuert
ich brauche Hilfe mit EFEU als Abhängigkeiten-manager
meine Anwendung benötigt plugins laden zur Laufzeit
bedeutet, während der Kern-Anwendung ausgeführt wird ,kann der Benutzer die Anforderung für ein neues plug-in
und installieren Sie ,
ich wünschte, die Verwaltung aller installierten plugins mit der core-Anwendung DB.
möchte ich, um eine pom aus meinem plugins-server (oder einen anderen Deskriptor),
und fragt IVY, mir zu sagen, was sind die Abhängigkeiten lassen ODER EFEU
das plug-in installieren und Abhängigkeiten ,
basierend auf den aktuellen Zustand der Anwendung.
( was ich jetzt haben ,
1.jar ' s verwendet, die core-Anwendung
2.jar ' s verwendet durch die aktuell installierten plugins)
Wünsche ich für jedes plug-in zu haben, unabhängig directory
unter einem Ordner, wo meine Anwendung befindet (keine WG)
das Ding ist, ich weiß nicht, wo Sie anfangen
ich merke, dass es keine Programmier-API für das
ich nur einen link über das Netzwerk von jemand, die versuchen, etwas ähnliches
aber Blick mag der code ist noch nicht abgeschlossen , oder einige Variablen fehlen
und ich weiß nicht, wie es um den rest zu vervollständigen verursachen See-Programmierung-Dokumentation
http://www.mail-archive.com/[email protected]/msg03228.html
(wobei die variable "art" kam.....)
können Sie mir bitte helfen ...
Danke Euch allen
UPDATE
ok das versuche ich jetzt .
ich bin immer einige Fehler und ich weiß nicht, wie formuliere ich meine archiva server
IvySettings settings = new IvySettings();
settings.setDefaultIvyUserDir(new File("D:/programming/eclipse_projects/ivyTest/repo/"));
settings.setDefaultCache(new File("D:/programming/eclipse_projects/ivyTest/repo/cache/"));
settings.setDefaultCacheArtifactPattern("[module]/[revision]/[module]-[revision](-[classifier]");
Ivy ivy = Ivy.newInstance(settings);
ivy.getLoggerEngine().pushLogger(new DefaultMessageLogger(Message.MSG_VERBOSE));
ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), new File("src/movies.pom").toURL(), true);
RetrieveOptions retriveOptions = new RetrieveOptions();
retriveOptions.setUseOrigin(true);
retriveOptions.setConfs(md.getConfigurationsNames());
ivy.retrieve(md.getModuleRevisionId(), "lib/[conf]/[artifact].[ext]", etriveOptions);
dies ist der Fehler, bekomme ich
:: loading settings :: url = jar:file:/D:/programming/eclipse_projects/ivyTest/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: retrieving :: org.jtpc#movies
checkUpToDate=true
confs: [default, master, compile, provided, runtime, test, system, sources, javadoc, optional]
java.lang.RuntimeException: problem during retrieve of org.jtpc#movies: java.lang.IllegalStateException: Report file 'D:\programming\eclipse_projects\ivyTest\repo\cache\org.jtpc-movies-default.xml' does not exist.
at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:206)
at org.apache.ivy.Ivy.retrieve(Ivy.java:540)
at Test.main(Test.java:52)
Caused by: java.lang.IllegalStateException: Report file 'D:\programming\eclipse_projects\ivyTest\repo\cache\org.jtpc-movies-default.xml' does not exist.
at org.apache.ivy.plugins.report.XmlReportParser.parse(XmlReportParser.java:294)
at org.apache.ivy.core.retrieve.RetrieveEngine.determineArtifactsToCopy(RetrieveEngine.java:288)
at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:104)
... 2 more
- Sie müssen angeben, welche Fehler zurückgegeben werden.
- ja, ich weiß nicht, wie mein repository .
- Hinzugefügt ein Beispiel einer settings-Datei, die zur Konfiguration der Position Ihres Maven-repository. Siehe mein mail weiter unten
- Siehe Antwort stackoverflow.com/questions/8243930/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ivy verwendet werden kann, wie standalone java-Programm:
Den abrufen Muster werden dann verwendet, um zu ermitteln, wo Dateien installiert sind, basiert auf der ivy-Konfiguration Einstellungen
Konfigurationen verwendet werden, als eine kollektive Bezeichnung oder Gruppierung von Abhängigkeiten. Sie sind ähnlich wie Maven Bereiche, aber viel flexibler:
Wenn Sie nur herunterladen möchten, und installieren Sie eine Reihe von Gläsern, in einem angegebenen Verzeichnis, die Sie verwenden können, die confs parameter:
Schließlich, wenn Sie weiterhin verwenden möchten, eine Programmier-API, die Sie aufrufen könnte die laufen - Methode aufgerufen, indem die main-Klasse
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/Main.java?view=markup
Update 1
Groovy hat eingebaute Unterstützung für den Aufruf ivy Aufgaben
Update 2
Legen Sie die Position von Ihrem lokalen Maven-repository, müssen Sie eine ivysettings.xml Datei.
Update 3
Fand gerade einen Artikel, der beschreibt, wie aufrufen Ivy von Java