Known Issues
While every attempt is made to ensure this plugin is as functional and complete as possible, some known issues exist.
Plexus and Maven
Prior to Maven 3.9, a component named plexus-tools
was included by Apache
Maven at runtime. The component is used by Maven plugin internals. In v3.9.0 of
Maven, this was removed. Some older Maven plugins may still need this dependency
to work. The protobuf-maven-plugin does not require this, but we have observed in
some cases that Maven still attempts to reference this dependency (likely triggered
by the use of Maven 2 plugins that need to be updated by the author). This can
result in the protobuf-maven-plugin crashing with “wiring” errors. See
this discussion
for details and a potential workaround while this is investigated.
Incremental compilation edge cases
The experimental incremental compilation feature is known to have some edge cases
where a mvn clean
is required to rebuild the entire source tree. This is due to
the somewhat coarse way that changes are monitored between builds. If this becomes
overly problematic, please raise an issue on GitHub with details of how to reproduce
the issue you are seeing.
Incremental compilation only currently considers if an entire file has changed. No attempt is made to parse a dependency graph of all sources to determine whether a change impacts other files. This may be implemented in the future if the performance overhead is not too high. For now, it is best to disable incremental compilation, use includes/excludes, or perform clean builds if you are actively changing protobuf sources.
Descriptor support
Protobuf descriptors are currently unsupported. Please raise an issue on GitHub if you wish to request this feature, along with details of your use case.