Gradle plugin for Kaitai: declarative language to generate binary data parsers
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
gradle/wrapper
src
.editorconfig
.gitignore
.travis.yml
LICENSE
README.md
build.gradle.kts
gradle-template.properties
gradle.properties
gradlew
gradlew.bat
settings.gradle.kts

README.md

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.0")
    }
}
  • 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

Developments

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

Deploy new version manually:

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