2016-09-13 4 views
1

Ich habe einen Apache Archiva Repo, den ich eingerichtet habe, um die binären Abhängigkeiten für ein Maven-Projekt zu bearbeiten, an dem ich arbeite; Das Projekt scheint jedoch auch einige Abhängigkeiten von lokalem 3rd-Party-Quellcode zu haben (Unsure of Distribution License). Gibt es eine Möglichkeit, dass ich diese Quelle irgendwo platzieren kann, wo Maven sie finden kann, wenn sie einen Build machen muss? Normalerweise würde die Quelle in SCM gespeichert werden, aber das scheint nicht die richtige Lösung für Java-Quelldateien zu sein, die ich nur zum Kompilieren verwende (nur zur Kompilierzeit benötigt), aber nicht in meinem Hauptverzeichnis "/ src" Verzeichnis. Elaborations und Best Practices geschätzt, ich bin ziemlich neu in Java Development und Maven.Wie zeige ich Maven auf Java Sorce Code Abhängigkeiten?

+0

Sie benötigen diesen Quellcode nur bei der Kompilierung? – Puce

+0

@Puce Ja, das ist richtig. –

Antwort

2

Mögliche Lösungen:

  • das 3rd-Party-Projekt überzeugen die JAR mit den Klassendateien Maven Central (wenn Open Source)
  • das 3rd-Party-Projekt überzeugen zu implementieren die JAR mit den Klassendateien bereitstellen zu Ihrem Apache Archiva Repo (falls Closed Source und in derselben Organisation)
  • Überzeugen Sie das 3rd Party Projekt, das JAR mit den Klassendateien in einem eigenen Maven Repository Manager zu deployen und dieses Repo in Ihrer Apache Archiva Instanz zu registrieren (falls Closed Source und nicht in der gleiche Organisation; nicht sicher, ob Apache Archiva eine solche Funktion bietet)
  • Erstellen Sie das JAR mit den Klassendateien selbst und stellen Sie es in Ihrem Apache Archiva Repo bereit. Dann erklären eine Abhängigkeit wie gewohnt
+0

Also zur Klarstellung: Abhängigkeiten müssen immer verpackt werden? (Wie in einem .jar) –

+0

@BrandonSnider Ja, zumindest mit den Out-of-the-Box-Funktionen (Glas, Pom, Ohr, Krieg, ...). Ich bin mir nicht sicher, was von benutzerdefinierten Komponenten unterstützt wird. – Puce

1

Sie können die Jar-Datei des 3rd-Party-Quellcodes erstellen und unter Ihrem/lib-Ordner speichern und die Abhängigkeit in Ihrer pom.xml-Datei bereitstellen. Wenn Sie nun Ihren Code erstellen, werden die Abhängigkeiten vom jeweiligen Teil übernommen JAR-Datei.

<dependency> 
     <groupId>--grp id name--</groupId> 
     <artifactId>--artifact id--</artifactId> 
     <scope>system</scope> 
     <version>1.0</version> 
     <systemPath>--${basedir}\lib\{name}.jar--</systemPath> (Path of jar) 
     </dependency> 
    </dependencies> 

* Entfernen Sie "- -" während der Implementierung.

0

Sie die Build Helper Plugin verwenden können, z:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
      <id>add-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
       <source>path to where your 3rd party source code is present</source> 
       ... 
       </sources> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project>