Java – How to include licenses for third-party Maven dependencies

apache-licensejavalicensingmavenmit-license

I'm producing a binary distributable for my Java project. I'm releasing it in two ways:

  1. Maven Central

  2. Zipped distributable on Google code

My project is licensed under the Apache 2.0 license. I use a small number of third-party parties, one of which is MIT licensed. I believe it's my obligation to make users of my project aware of the license contents, based on the following text from the license:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

How am I best to reference this within my source and my distributables? I'm currently thinking:

  1. My source files needn't reference anything. They just include my Apache 2.0 boilerplate notice.

  2. I add a LICENSE.txt file at the root of my project including the Apache 2.0 license text.

  3. For my zipped distributable, I need to also add something that indicates a component is MIT licensed. Perhaps a NOTICE file?

  4. For my Maven Central distribution, I needn't do anything as my artifact just declares its dependencies, but doesn't actually include them.

Does this seem like a valid plan? If so, can anyone advise how to accomplish point 3.

Best Answer

Using the Maven License Plugin, you can generate a text file with all the licenses (license:add-third-party). This file can then be included as a resource into your project or your bundled zip.