Come posso aggiungere il codice sorgente ai Biblioteche di dipendenza in Maven?
-
21-09-2019 - |
Domanda
Per esempio, ho incluso nelle mie dipendenze JUnit-addons: JUnit-addons. Ma nel repository Maven non c'è alcun codice sorgente. E so che esiste (ho scaricato). Come posso modificare le dipendenze al fine di utilizzare le librerie dal mio progetto locale anziché dal repository Maven (vorrei omettere le JUnit-addons dal respository e utilizzare un JAR locale e il suo codice sorgente, invece).
Nota: io uso m2eclipse
.Soluzione
Come posso modificare le dipendenze al fine di utilizzare le librerie dal mio progetto locale anziché dal repository Maven
Non è possibile. Se un JAR fonti non è disponibile nel repository centrale, basta mettere i sorgenti da qualche parte nel file system in una cartella, JAR o zip (si potrebbe install:install-file
un archivio fonti nel vostro repository locale, seguendo le convenzioni di Maven) e la configurazione Eclipse da usare li ( tasto destro del mouse sul JAR sotto Maven dipendenze nel Package Explorer , selezionare sorgente Java Allegato e impostare il Location percorso ).
Altri suggerimenti
Ho risolto il problema in un modo di procedere molto semplice:
Ho copiato nella cartella ${user.home}/.m2/repository/{group-name}/{artifactId}/{version}/
il file di origine seguente norma MAVEN: {artifactId}-{version}-sources.jar
e funziona come un fascino! Eclipse controlla il repository locale e trova le fonti.
Non so se questo è il modo Maven, però.
Io uso la versione gratuita di repository Artifactory. Ho creato un file jar {artifactId} - {version} -sources.jar e caricato nel repository nello stesso gruppo-id come file jar binario. Poi nel mio pom ho aggiunto dipendenza:
<dependency>
<groupId>mygroupid</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<classifier>source</classifier>
</dependency>
Nel corso Maven vaso fonte fase di costruzione è stato scaricato al mio repository locale. Io uso NetBeans 7.0 ed è gestito automaticamente tutto per me. Ad esempio, fate clic destro sul metodo e la scelta di andare toSource porta correttamente me di codice sorgente nel vaso.
È possibile utilizzare il installare file mojo per installare localmente artefatti nel tuo repository Maven locale. Se si desidera condividere questo manufatto con gli altri (dire la tua squadra o un'altra stazione di lavoro), è possibile utilizzare il proprio repository manager (ad esempio Nexus ) e configurarlo come uno specchio per qualsiasi repository, ad esempio, centrale. Nexus recupererà (e cache) manufatti da centrale. Inoltre, è possibile caricare praticamente qualsiasi manufatto (come fonti JUnit-addons) per l'installazione di Nexus.
Per fare configurare uno specchio, si dovrà modificare ${user.home}/.m2/settings.xml
<settings>
<!-- SNIP -->
<mirrors>
<mirror>
<id>nexus-releases</id>
<mirrorOf>*</mirrorOf>
<!-- replace nexus.example.com with the location of your nexus installation -->
<url>http://nexus.example.com/releases</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<id>nexus</id>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</pluginRepository>
</profile>
</profiles>
</settings>
Dopo aver scaricato nella tua repository locale, si potrebbe fare una copia di esso. Dategli un nuovo artifactId (ad esempio LibraryName-myVersion) e aggiungere le dipendenze nel pom. Assicurati di modificare i nomi delle cartelle, i nomi, i nomi vaso POM e la stessa artifactId nel pom. Conservare tutto nel vostro repository locale. Ora è possibile utilizzare la versione hacked della vostra dipendenza.
Ma ad essere onesti, non lo faccio cosa questa è una buona idea per fare. , ma forse aiuta / non potrebbero essere evitati nel tuo caso.