On 1/25/2013 12:59 PM, Peter Klügl wrote:
> The binaries and the top level (release) sources look fine now, but I have a
> problem with the individual sources.
>
> Can someone give me a hint how to get a customized LICENSE file into the
> sources in our build?
> Or, a pointer how the LICENSE file is included by the maven-source-plugin.
> Anything I did was either ignored or overridden.
Whoops!
I'm thinking more now... This is the "source-release", right? That
distribution is unlikely to have any content other than Apache Licensed content,
since it only includes the sources, right? So it would be incorrect to put in
the LICENSE/NOTICE that goes with the binary builds (which incorporate
dependencies from other places with other LICENSE/NOTICEs perhaps).
So the "standard" LICENSE/NOTICE should be fine here?
Or did I misunderstand something?
-Marshall
>
> Peter
>
> On 25.01.2013 16:35, Marshall Schor wrote:
>> hi - I'm digging into this.
>>
>> Here's what I've found so far (taking the uimaj-ep-configurator project as a
>> sample).
>>
>> The build process chain includes early on the maven-remote-resources plugin.
>> This fetches "standard" things from a standard place for the license and
>> notice
>> files, puts them into
>> .../target/maven-shared-archive-resources.
>>
>> The maven-remote-resources plugin runs "velocity" macro expansion; this
>> allows
>> inserting at build time extra stuff. Our Notice template (in
>> build/trunk/uima-build-resources/src/main/resources/META-INF/NOTICE.vm) is a
>> slight modification from the Apache-wide Notice template, in that it has an
>> extra bit at the bottom that says, if the maven property
>> "project.properties.postNoticeText" is set, then insert it. We use this to
>> modify the Notice file for things which originally had IBM copyrights which
>> were
>> moved to the notice file.
>>
>> The documentation for the maven-remote-resources plugin says the goal we're
>> using ("process") after running the velocity macro expansion on the
>> resources,
>> they "are injected into the current (in-memory) Maven project, making them
>> available to the process-resources phase."
>>
>> What you have to know to have this make sense, is that if you have
>> (subsequently) an invocation of the maven-resources-plugin with the
>> "resources"
>> goal, running in the "process-resources" phase, then that will copy the
>> files in
>> .../target/maven-shared-archive-resources into the .../target/classes spot -
>> so
>> the eventual JAR plugin will package these (it Jars up everything it finds in
>> the .../target/classes directory).
>>
>> So, that's how the files get to the right spot in the Jar.
>>
>> I think our current build process is lacking the ability to do customization
>> of
>> the LICENSE file prototype. We could modify that, to work just like the
>> Notice
>> file works, to allow extending the standard LICENSE with arbitrary text. We
>> might want to do something different, though, in the case of large
>> modifications
>> to the standard LICENSE / NOTICE files. One thing that would probably work
>> is
>> to use a copy-resources kind of step to replace/override the "standard"
>> LICENSE/NOTICE files in ...target/classes/MEAT-INF with the custom ones from
>> some standard spot (I would suggest using the same spot as you already used).
>>
>> =====================
>>
>> I think the reason this hasn't come up before, is that the JARs we built did
>> not
>> (normally) contain other Jars that needed special LICENSE/NOTICE files. The
>> things that did have that need were normally zip and tar assemblies of JARs,
>> where we used the assembly plugin to do this packaging.
>>
>> I haven't looked to see what the case is with your packaging - if you're
>> using
>> Assembly, then there are other conventions involving the instructions you
>> were
>> following. My guess is that you're not using assembly, so those instructions
>> don't help.
>>
>> =====================
>>
>> Let me know if you need help in doing something like this...
>>
>> -Marshall
>>
>> On 1/25/2013 8:40 AM, Peter Klügl wrote:
>>> On 25.01.2013 14:02, Jörn Kottmann wrote:
>>>> On 01/25/2013 01:13 PM, Peter Klügl wrote:
>>>>> If I undestand that correctly, then I have to remove ANTLR and htmlparser
>>>>> from the NOTICE/LICENSE in the top level project since they are both not
>>>>> part of the source release. Then, I have to add NOTICE/LICENSE files (with
>>>>> ANTLR and htmlparser) to src/main/readme/ in the top level project and to
>>>>> the uimaj-ep-textmarker-engine project since those two binaries will
>>>>> contain
>>>>> the third party libraries. The other plugins also need their own
>>>>> NOTICE/LICENSE files in src/main/readme/ since they contain the icons. Is
>>>>> that correct? Is there a shortcut, something that influences maven what to
>>>>> put in those files, or which file to copy?
>>>> +1, sounds good.
>>> Unfortunately, this did not work. I added individual LICENSE/NOTICE files to
>>> src/main/readme in uimaj-ep-textmarker-engine but the binary just contains
>>> the
>>> default files and additionally files with ".txt" extension and the same
>>> content. The -sources jar contains also only the default files.
>>>
>>> Any ideas?
>>>
>>> Peter
>>>
>>>
>>>
>>>> Jörn
>>>
>
>