This project is archived and no longer maintained. At the time of archiving,
open issues and pull requests were closed and tagged with 2018-05-archive
.
For pre-existing users who need an open source alternative, we recommend taking
a look at airlift/drift.
Generate Swift compatible java code from thrift IDL files.
Add the plugin to the build plugins section of the pom.
<build>
<plugins>
<plugin>
<groupId>com.facebook.mojo</groupId>
<artifactId>swift-maven-plugin</artifactId>
<version>0.2-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
...
</configuration>
</plugin>
</plugins>
</build>
Additional help can be displayed with mvn com.facebook.mojo:swift-maven-plugin:help.
Skip the plugin completely. Can be used to turn plugin execution on or off.
skip is optional, default is "false".
<skip>true|false</skip>
Sets the package name for the generated classes. If this value is set, any package name provided by the IDL files or default package name is ignored and all classes will be in this package.
This is almost always the wrong value to use. Prefer using the package defined in the Thrift IDL files or set a default package name.
overridePackage is optional. If not set, the plugin uses the package names from the IDL files or a default package name.
<overridePackage>... valid java package name ...</overridePackage>
Defines a Java package name if a Thrift IDL file does not contain a package name. This is used only as fallback.
defaultPackage is optional. Trying to generate Java code from a Thrift IDL file without java namespace definition will fail with an error if no default package is set.
<defaultPackage>... valid java package name ...</defaultPackage>
Defines a fileset to include for IDL parsing and code generation.
idFiles must be defined in the POM, otherwise the plugin will report an error.
Usage:
<idlFiles>
<directory>... base directory ...</directory>
<includes>
<include>... include pattern ...</include>
</includes>
<excludes>
<exclude>... exclude pattern ...</exclude>
</excludes>
</idlFiles>
directory, includes and excludes are used to select the IDL files to process:
- directory: Base directory, defines where the IDL files are to be found. There is no default.
- includes: A set of files patterns which specify the files to include.
- excludes: The same structure as includes, but specifies which files to ignore. In conflicts between include and exclude, exclude wins.
Wildcards support '*' for all files in a given directory and '**/*' for all files in a given subtree.
Determines the output folder for the generated sources. This folder is added to the sources for the project so any generated class is in turn picked up by the compiler plugin.
outputFolder is optional with a default of ${project.build.directory}/generated-sources/swift.
If set to true, generate Java code for all referenced Thrift IDL files. If false, only generate code for IDL files listed in idlFiles.
generateIncludedCode is optional, default value is "false".
<generateIncludedCode>true</generateIncludedCode>
Selects the type of code generated by the plugin. Currently, only two flavors are supported: java-regular and java-immutable.
codeFlavor is optional, default value is "java-regular".
<codeFlavor>java-immutable</codeFlavor>
If set to true, adds org.apache.thrift.TException to each generated method signature (this is the default).
addThriftExceptions is optional, default value is "true".
<addThriftExceptions>false</addThriftExceptions>
If set to true, add the java.io.Closeable interface as a parent to all created service classes and also add a void close() method.
addCloseableInterface is optional, default value is "false".
If set to true, all created exceptions will inherit from java.lang.RuntimeException and therefore be unchecked exceptions. If false, all created exceptions are checked exceptions and inherit from java.lang.Exception.
extendRuntimeException is optional, default value is "true".
The generate goal of the plugin is by default hooked into the generate-sources phase of the maven lifecycle.