Sto cercando di utilizzare il avro-gradle-plugin on github, ma non ho avuto fortuna a farlo funzionare. Qualcuno ha qualche codice di esempio su come farlo funzionare?plug-in avro gradle esempio di utilizzo
5
A
risposta
5
Ho capito come farlo da solo. Il seguente è un frammento che mi piacerebbe condividere per persone che potrebbero incorrere negli stessi problemi come ho fatto io:
apply plugin: 'java'
apply plugin: 'avro-gradle-plugin'
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
buildscript {
repositories {
maven {
// your maven repo information here
}
}
dependencies {
classpath 'org.apache.maven:maven-artifact:2.2.1'
classpath 'org.apache.avro:avro-compiler:1.7.1'
classpath 'org.apache.avro.gradle:avro-gradle-plugin:1.7.1'
}
}
compileAvro.source = 'src/main/avro'
compileAvro.destinationDir = file("$buildDir/generated-sources/avro")
sourceSets {
main {
java {
srcDir compileAvro.destinationDir
}
}
}
dependencies {
compileAvro
}
0
ho trovato "com.commercehub.gradle.plugin.avro" plug Gradle a lavorare meglio.
utilizzare i folllowing:
// Gradle 2.1 and later
plugins {
id "com.commercehub.gradle.plugin.avro" version "VERSION"
}
// Earlier versions of Gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.commercehub.gradle.plugin:gradle-avro-plugin:VERSION"
}
}
apply plugin: "com.commercehub.gradle.plugin.avro"
più dettagli a https://github.com/commercehub-oss/gradle-avro-plugin
0
Quando si valuta un plugin alle seguenti domande deve essere chiesto:
file- vengono generati inclusi nel barattolo fonte?
- Il plug-in è veloce? Un buon plugin usa l'API di strumenti avro invece di eseguire il fork della VM per ogni file. Per una grande quantità di file, la creazione di una VM per ogni file può richiedere 10 minuti per la compilazione.
- Avete bisogno di file avsc intermedi?
- La build è incrementale (ad esempio, non rigenerare tutti i file a meno che una delle fonti non sia stata modificata)?
- Il plug-in è abbastanza flessibile da consentire l'accesso ai file di schema generati, pertanto è possibile eseguire ulteriori azioni, come lo schema di registrazione nel repository di schemi?
È abbastanza facile implementare senza alcun plug-in se non si è soddisfatti del plug-in o se si ha bisogno di maggiore flessibilità.
//
// define source and destination
//
def avdlFiles = fileTree('src/Schemas').include('**/*.avdl')
// Do NOT generate into $buildDir, because IntelliJ will ignore files in
// this location and will show errors in source code
def generatedJavaDir = "generated/avro/java"
sourceSets.main.java.srcDir generatedJavaDir
//
// Make avro-tools available to the build script
//
buildscript {
dependencies {
classpath group:'org.apache.avro', name:'avro-tools' ,version: avro_version
}
}
//
// Define task's input and output, compile idl to schema and schema to java
//
task buildAvroDtos(){
group = "build"
inputs.files avdlFiles
outputs.dir generatedJavaDir
doLast{
avdlFiles.each { avdlFile ->
def parser = new org.apache.avro.compiler.idl.Idl(avdlFile)
parser.CompilationUnit().getTypes().each { schema ->
def compiler = new org.apache.avro.compiler.specific.SpecificCompiler(schema)
compiler.compileToDestination(avdlFile, new File(generatedJavaDir))
}
}
}
}
//
// Publish source jar, including generated files
//
task sourceJar(type: Jar, dependsOn: buildAvroDtos) {
from sourceSets.main.allSource
// Package schemas into source jar
into("Schemas") { from avdlFiles }
}
// Clean "generated" folder upon "clean" task
clean {
delete('generated')
}
Problemi correlati
- 1. Utilizzo del plugin gradle tomcat
- 2. Utilizzo di apro avro reflect
- 3. Utilizzo di Apache Avro in javascript
- 4. Findbugs android gradle plugin
- 5. Esempio di utilizzo TLoginCredentialService
- 6. Gradle C Plugin by Example
- 7. Plugin Gradle: Convention vs. Extension
- 8. Creazione di plugin Eclipse con Gradle
- 9. file Concat Avro utilizzando Avro-tools
- 10. LocationServices Android.GeofencingApi esempio di utilizzo
- 11. Convalida AVRO
- 12. Come risolvere la dipendenza del plugin Gradle?
- 13. Equivalente gradle del plugin maven-dependance
- 14. ID plugin Gradle personalizzato non trovato
- 15. Come elencare i plugin disponibili in Gradle
- 16. Gradle personalizzato Plugin: gradleApi() vs dipendenza esplicita
- 17. Utilizzo di AndroidAnnotations con Scala e Gradle
- 18. Android Studio: New Gradle accumulo NDK errore di esempio app
- 19. Esempio di utilizzo di asserzione in Python?
- 20. esempio di utilizzo di scala.collection.immutable.Set da java
- 21. Un buon esempio di utilizzo di libpurple?
- 22. Jenkins Gradle Plugin - Passa parametri -P invece di -D
- 23. Aggiunta di istanza di oggetto all'estensione del plugin gradle
- 24. Conversione JSON in avro
- 25. Utilizzo di plugin con Cordova CLI
- 26. Utilizzo di Browserify con jQuery Plugin
- 27. Esempio di file di input Plugin di stampa Jenkins
- 28. Tipi generati Esempio di utilizzo del provider
- 29. Utilizzo di FFMPEG e url_fopen esempio
- 30. CreateProcessWithTokenW - Esempio di utilizzo in C#