| # License headers and notices | |
| Drill uses the standard Apache license header checker: | |
| * [Apache RAT Plugin](http://creadur.apache.org/rat/apache-rat-plugin/) | |
| ## Doing license header checks | |
| The license checks are enabled by default, bound to the `validate` build | |
| phase. They can be disabled using the Maven argumment `-Drat.skip=true`. RAT | |
| will accept a license header appearing in a Javadoc comment (which opens with | |
| `/**`) but these result in noise the generated Javadoc HTML. Any instances | |
| of such headers can be found using a pattern, e.g. | |
| ```sh | |
| grep -Pzo '/\*\*\n \* Licensed to the Apache Software Foundation' **/*.java | |
| ``` | |
| and corrected by replacing the opening `/**` with `/*`. | |
| ## Auto formatting license headers | |
| The Maven build does not do automatic insertion of license headers to | |
| avoid mislicensing code under other open source licenses that may have been | |
| brought into the Drill codebase with the exception of generated code (see | |
| the protocol module). | |
| ## Generating the binary distribution LICENSE | |
| Drill makes use of org.codehaus.mojo:license-maven-plugin to | |
| generate the LICENSE file bundled with its binary distribution | |
| (distribution/src/main/resources/LICENSE). This plugin binds to | |
| the generate-resources build phase and combines undetectable license | |
| notices that are manually maintained in a base Freemarket template (see | |
| distribution/src/main/resources/licenses/) with autodetected license | |
| notices. It can be run manually as follows. | |
| ```sh | |
| cd distribution | |
| mvn license:add-third-party | |
| ``` | |
| If a dependency that the plugin cannot lookup a license for has been introduced | |
| then it will fail with an instruction to add determine the license manually | |
| and add it to the MISSING.properties file. |