Ho un progetto Gradle e ho bisogno che tutte le sue dipendenze vengano trasferite e utilizzate con un altro progetto Maven. In altre parole, come posso generare (o posso generare) pom.xml da build.gradle?Gradle build.gradle to Maven pom.xml
risposta
La soluzione più incorporata sarebbe probabilmente quella di utilizzare l'attività archiveTask
nel plug-in Maven che genererà un pom nella cartella poms
nella directory di compilazione. http://www.gradle.org/docs/current/userguide/maven_plugin.html#sec:maven_pom_generation
Quando si utilizza Gradle's Maven plugin, il compito installare viene aggiunto automaticamente ai vostri compiti, e chiamandolo sarà sempre generare un file POM.
Quindi, se il file build.gradle assomiglia a questo:
apply plugin: 'java'
apply plugin: 'maven'
group = 'myGroup'
// artifactId is taken by default, from folder name
version = '0.1-SNAPSHOT'
dependencies {
compile 'commons-lang:commons-lang:2.3'
}
è possibile chiamare gradle install
nella sua cartella, si trova nella build/pon sottocartella, un file chiamato Pommerening default.xml che conterrà le dipendenze. Inoltre, il JAR compilato insieme al POM si troverà nel repository locale Maven.
Come non volevo installare nulla nel mio repository locale, ho seguito, invece, dopo aver letto i documenti. Aggiungi nella tua build.gradle
apply plugin: 'maven'
group = 'com.company.root'
// artifactId is taken by default, from folder name
version = '0.0.1-SNAPSHOT'
task writeNewPom << {
pom {
project {
inceptionYear '2014'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}
per eseguirlo gradle writeNewPom
@a_horse_with_no_name
Gradle stato fatto con groove può provare ad aggiungere dopo la fine del blocco} progetto
build{
plugins{
plugin{
groupId 'org.apache.maven.plugins'
artifactId 'maven-compiler-plugin'
configuration{
source '1.8'
target '1.8'
}
}
}
}
non ha provato, indovinare selvaggia!
Grazie, dilbertside. Come un incantesimo, nel mio caso) – WebComer
Scrive solo i JAR nel POM, ma non crea un progetto completo che include anche le origini del progetto. Come faccio a ottenere il plugin Maven per scrivere anche le directory di origine (e testo, risorse ...) nel POM? –
@dilbertside Ha funzionato per me. Grazie. –
Quando non hai Gradle installato il "scrivere compito Gradle per fare questo non è molto userful Invece di installare questo 100MB bestia con dependecies ho fatto il filtro di conversione dipendenze Gradle a Maven dipendenze:.
cat build.gradle\
| awk '{$1=$1};1'\
| grep -i "compile "\
| sed -e "s/^compile //Ig" -e "s/^testCompile //Ig"\
| sed -e "s/\/\/.*//g"\
| sed -e "s/files(.*//g"\
| grep -v ^$\
| tr -d "'"\
| sed -e "s/\([-_[:alnum:]\.]*\):\([-_[:alnum:]\.]*\):\([-+_[:alnum:]\.]*\)/<dependency>\n\t<groupId>\1<\/groupId>\n\t<artifactId>\2<\/artifactId>\n\t<version>\3<\/version>\n<\/dependency>/g"
questo trasforma
compile 'org.slf4j:slf4j-api:1.7.+'
compile 'ch.qos.logback:logback-classic:1.1.+'
compile 'commons-cli:commons-cli:1.3'
in
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.+</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.+</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.3</version>
</dependency>
Il resto di pom.xml dovrebbe essere creato a mano.
- 1. dipendenze Specifica Maven in build.gradle non funziona
- 2. Informazioni di lettura dal file pom.xml esistente usando Gradle?
- 3. Plugin in Maven e POM.xml
- 4. più repository Maven in Gradle
- 5. come utilizzare le proprietà Gradle a build.gradle
- 6. Impossibile risolvere classe build.gradle utilizzando Studio Android 0.60/Gradle 0,11
- 7. Esegui un obiettivo Maven personalizzato senza pom.xml
- 8. Come configurare "tomcat7-maven-plugin" in pom.xml?
- 9. Maven: imposta la posizione settings.xml nel pom.xml?
- 10. Repository locale Maven in settings.xml vs pom.xml
- 11. convert maven pom a gradle build
- 12. Dipendenze Maven con Android Studio/Gradle
- 13. Maven site in gradle
- 14. Come suddividere la logica build.gradle in altri file .gradle?
- 15. Differenza tra Gradle e Maven?
- 16. Errore Android Build.gradle DuplicateFileException
- 17. Gradle Android: creazione di più progetti, livello superiore build.gradle
- 18. In Android Gradle build.gradle Che cos'è "it" in it.buildConfigField?
- 19. Possibilità di convertire il progetto Gradle in Maven in IntelliJ e mantenere entrambi i file di build
- 20. Come includere più repository in build.gradle?
- 21. Gradle Build Error: impossibile caricare metadati Maven da https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml
- 22. conversione da gradle a maven plug-in
- 23. Maven genera file duplicati e pom.xml pom.properties in un barattolo
- 24. come controllare il pom.xml all'interno del vaso costruito da Maven?
- 25. Come escludere pom.xml dalla guerra generata da Maven?
- 26. Maven: modifica le proprietà della versione in pom.xml
- 27. Maven: imposta la proprietà in pom.xml dal file delle proprietà
- 28. Strumento per convertire Maven pom.xml in leiningen project.clj
- 29. Modifica dei valori Maven pom.xml <properties> fisicamente
- 30. Progetto di aggiornamento di Android-Studio con modifiche build.gradle
questo dovrebbe essere il modo "ufficiale" per generare POM e installare gli artefatti localmente, specialmente quando si converte una serie di progetti di moduli legacy basati su POM. –