Qualcuno ha idea se è possibile trovare JAR di origine nei repository Maven?
Qualcuno ha idea se è possibile trovare JAR di origine nei repository Maven?
Risposte:
Maven Micro-Tip: Ottieni fonti e Javadocs
Quando si utilizza Maven in un IDE, è spesso necessario che l'IDE risolva il codice sorgente e Javadocs per le dipendenze della libreria. C'è un modo semplice per raggiungere questo obiettivo.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
Il primo comando tenterà di scaricare il codice sorgente per ciascuna delle dipendenze nel file pom.
Il secondo comando tenterà di scaricare Javadocs.
Maven è in balia dei confezionatori di biblioteche qui. Quindi alcuni di loro non avranno pacchetti di codice sorgente e molti di loro non avranno Javadocs.
Nel caso abbiate molte dipendenze, potrebbe anche essere una buona idea usare inclusioni / esclusioni per ottenere artefatti specifici, il seguente comando scaricherà ad esempio solo i sorgenti per la dipendenza con un artefatto specifico:
mvn dependency:sources -DincludeArtifactIds=guava
Fonte: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Documentazione: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA ha notato automaticamente il javadocs, il che è molto bello.
Configurazione ed esecuzione del plug-in maven-eclipse, (ad esempio dalla riga di comando mvn eclipse:eclipse
)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
mvn eclipse:eclipse
se si aggiunge questo al file POM?
M2_REPO
come xxxx-yy-sources.jar, nella stessa posizione del normale jar. Verrà allegato come codice sorgente per il jar xxxx-yy nelle librerie
Se un progetto crea un barattolo delle fonti del progetto e lo distribuisce in un repository maven, lo troverai :)
Solo FYI, i manufatti dei sorgenti sono generalmente creati dal plugin maven-source . Questo plugin può raggruppare le fonti principali o di test di un progetto in un archivio jar e, come spiegato in Configurazione del plugin sorgente :
(...) Il file jar generato sarà nominato dal valore del
finalName
"sorgente" più se è la fonte principale. Altrimenti, sarebbefinalName
più "-test-sources" se sono le fonti di test.
Il testo aggiuntivo che è stato dato per descrivere un artefatto ("-sources" o "-test-sources" qui) è chiamato classificatore.
Per dichiarare una dipendenza da un artefatto che utilizza un classificatore, è sufficiente aggiungere l' <classifier>
elemento. Per esempio:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
Si noti che generalmente non si esegue questa operazione, la maggior parte degli IDE fornisce supporto per il download di origini (e / o JavaDoc) dal manufatto principale senza dichiarare esplicitamente una dipendenza da esse.
Infine, nota anche che alcuni motori di ricerca del repository consentono la ricerca di artefatti usando il classificatore (almeno Nexus fa con la ricerca avanzata). Vedi questa ricerca per esempio.
Il plug- in Maven Idea per IntelliJ Idea consente di specificare se i sorgenti e il documento java devono essere risolti o scaricati
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Per scaricare una fonte specifica o javadoc dobbiamo includere GroupIds - È un valore separato da virgola come mostrato di seguito
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Si noti che il classificatore non è separato da virgola, per scaricare il javadoc è necessario eseguire il comando sopra ancora una volta con il classificatore come javadoc
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Per scaricare qualsiasi uso di artefatto
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Per le fonti Groovy questo sarebbe
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Per il javadoc di Groovy useresti
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Questo inserisce il dato artefatto nel tuo repository Maven locale, cioè di solito $HOME/.m2/repository
.
dependency:sources
scarica solo le fonti delle dipendenze del progetto, non le fonti dei plugin né le fonti delle dipendenze definite all'interno dei plugin.
puoi trovare informazioni in questa domanda correlata: Ottieni file jar di origine allegati a Eclipse per dipendenze gestite da Maven
se usi il plug-in eclipse maven quindi usa 'mvn eclipse: eclipse -DdownloadSources = true'
se stai usando eclipse potresti anche aprire Preferenze> Maven e selezionare Scarica fonti artefatto, questo lascerebbe intatto il pom.xml e manterrà i tuoi sorgenti o documenti java (se selezionati) solo per lo sviluppo proprio nella posizione della tua macchina ~ / .m2
In Eclipse
pom.xml
Run As
-> Maven generate-sources
Pre-requisito:
Maven dovrebbe essere configurato con Eclipse.
In NetBeans 8 con un progetto guidato da Maven, fai semplicemente clic con il pulsante destro del mouse sull'elemento dell'elenco di file jar della dipendenza a cui sei interessato. Scegli Download Sources
. Attendi qualche istante e NetBeans scaricherà e installerà automaticamente il codice sorgente, se disponibile.
Allo stesso modo puoi scegliere Download Javadoc
di installare il documento localmente. Quindi è possibile fare clic contestualmente su un codice nell'editor e scegliere di vedere JavaDoc.
In base alla visione della console Maven in Eclipse (Kepler), le fonti verranno scaricate automaticamente per una dipendenza Maven se si tenta di aprire una classe da detta dipendenza Maven nell'editor per il quale non si hanno già le fonti scaricate. Ciò è utile quando non si desidera acquisire risorse per tutte le dipendenze, ma non si sa quali si desidera in anticipo (e si utilizza Eclipse).
Ho finito per usare l'approccio di @ GabrielRamierez , ma utilizzerò l'approccio di @ PascalThivent in futuro.
Se conosci groupId e aritifactId , puoi generare l'URL di download in questo modo.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
e otterrai una pagina come questa, scegli la versione che ti serve, divertiti e basta!
Ho anche usato il plugin eclipse per portare il progetto nell'area di lavoro di eclipse. Da quando ho lavorato su un altro progetto ho visto che è possibile lavorare con eclipse ma senza il plugin maven-eclipse. Ciò semplifica l'utilizzo in ambienti diversi e consente un facile utilizzo di Mavens su Eclipse. E questo senza cambiare il file pom.xml.
Quindi, raccomando l'approccio di Gabriel Ramirez.
I repository Maven forniscono un modo semplice per scaricare il jar delle fonti.
Lo spiegherò usando una dimostrazione di "spring-boot-actuator-autoconfigure".
Altrimenti, puoi sempre "git clonare" il repository da github, se è lì e ottenere il codice specifico.
Come spiegato da altri, è possibile utilizzare il comando "mvn dependency: sources" per ottenere e generare il jar di fonti per la dipendenza che si sta utilizzando.
Nota: alcune dipendenze non avranno sources.jar, in quanto non contengono codice sorgente ma un file pom. ad es . attuatore-avviamento-molla-avvio . Come in questo caso:
I POM di avvio sono un insieme di descrittori di dipendenza convenienti che è possibile includere nell'applicazione. Ottieni uno sportello unico per tutta la primavera e la relativa tecnologia di cui hai bisogno, senza dover cercare il codice di esempio e copiare un sacco di descrittori di dipendenze.
Riferimento: Introduzione agli avviatori a molla
Se si desidera trovare manualmente il file jar di origine per uno qualsiasi degli artefatti, andare alla posizione del repository maven per l'oggetto specifico e in File fare clic su "Visualizza tutto". È possibile trovare il file jar di origine.