Skip to content

valery1707/kaitai-gradle-plugin

Repository files navigation

Maven Central Gradle Plugin Portal License

Build Status CircleCI

Gradle plugin for http://kaitai.io/

Usage

Minimum configuration

  • Add plugin dependency
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath("name.valery1707.kaitai:kaitai-gradle-plugin:0.1.2")
    }
}
  • Apply plugin
apply plugin: 'name.valery1707.kaitai'
  • Add Kaitai compile dependencies
repositories {
    jcenter()
}
dependencies {
    implementation("io.kaitai:kaitai-struct-runtime:0.8")
}
  • Configure plugin (all params are optional)
kaitai {
    packageName = 'preferred.package.name'
}

Plugin parameters

Name Type Since Description
skip boolean 0.1.0 Skip plugin execution (don't read/validate any files, don't generate any java types).

Default: false
url java.net.URL 0.1.0 Direct link onto KaiTai universal zip archive.

Default: Detected from version
version String 0.1.0 Version of KaiTai library.

Default: 0.8
cacheDir java.io.File 0.1.0 Cache directory for download KaiTai library.

Default: build/tmp/kaitai-cache
sourceDirectory java.io.File 0.1.0 Source directory with Kaitai Struct language files.

Default: src/main/resources/kaitai
includes String[] 0.1.0 Include wildcard pattern list.

Default: ["*.ksy"]
excludes String[] 0.1.0 Exclude wildcard pattern list.

Default: []
output java.io.File 0.1.0 Target directory for generated Java source files.

Default: build/generated/kaitai
packageName String 0.1.0 Target package for generated Java source files.

Default: Trying to get project's group or kaitai otherwise
executionTimeout Long 0.1.1 Timeout for execution operations.

Default: 5000
fromFileClass String 0.1.1 Classname with custom KaitaiStream implementations for static builder fromFile(...)
opaqueTypes Boolean 0.1.1 Allow use opaque (external) types in ksy. See more in documentation.

Developments

For debug on integration tests you must previously call some gradle tasks: jar assemble pluginUnderTestMetadata

Deploy new version manually:

  1. Update version inside this files:
    • build.gradle.kts: from 0.1.3-SNAPSHOT into 0.1.3
    • README.md: from 0.1.2 into 0.1.3
    • CHANGELOG.md: create new block for 0.1.3
  2. Commit with Prepare release 0.1.3
  3. Prepare gradle.properties from gradle-template.properties
  4. Run ./gradlew clean build uploadArchives
  5. Open Staging Repository
  6. Search for namevalery1707 and select founded
  7. Check content on tab Content
  8. Press Close with comment Release version 0.1.3
  9. Wait for operation:
  10. On failure:
    • Check reason on tab Activity
    • Press Drop with some comment
  11. Press Release with comment Release version 0.1.3
  12. Check exists for Gradle API keys in local configuration
  13. Run ./gradlew publishPlugins
  14. Update version into 0.1.4-SNAPSHOT and commit with Prepare for next development iteration

About

Gradle plugin for Kaitai: declarative language to generate binary data parsers

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published