Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ee4j-build] Legal Documents within produced artifacts?

Thanks Tom, this is a good start, but I had a problem...

If I have a project with many subprojects, some one level below the top project and some two levels below the top project, what can I put in my project's top level pom.xml that will allow lower level subprojects to reference the files at the top level?  Obviously "." doesn't work, and ".." doesn't work if there are different subprojects at different levels.

Stackoverflow had a couple of approaches; I chose this:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    ...
                    <execution>
                        <id>add-resource</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${main.basedir}</directory>
                                    <targetPath>META-INF</targetPath>
                                    <includes>
                                        <include>LICENSE.md</include>
                                        <include>NOTICE.md</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--
                Directory plugin to find parent root directory absolute path.
            -->
            <plugin>
                <groupId>org.commonjava.maven.plugins</groupId>
                <artifactId>directory-maven-plugin</artifactId>
                <version>0.3</version>
                <executions>
                    <execution>
                        <id>directories</id>
                        <goals>
                            <goal>highest-basedir</goal>
                        </goals>
                        <phase>initialize</phase>
                        <configuration>
                            <property>main.basedir</property>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

I was already using build-helper-maven-plugin for other reasons so I extended the configuration as above and included the directory-maven-plugin.  The directory-maven-plugin sets ${main.basedir}, which is used in the build-helper-maven-plugin to reference the LICENSE.md and NOTICE.md files.

Does anyone see any issues with this?

If all projects should be doing this, should it be in the parent pom?


Tom Jenkinson wrote on 10/04/2018 01:38 AM:


On 3 October 2018 at 14:45, Tom Jenkinson <tom.jenkinson@xxxxxxxxxx> wrote:


On 3 October 2018 at 12:44, Lukas Jungmann <lukas.jungmann@xxxxxxxxxx> wrote:
On 10/3/18 1:27 PM, Tom Jenkinson wrote:
Thanks Lukas, that did remove the file.

From: https://github.com/eclipse-ee4j/jta-api/blob/master/pom.xml#L204
https://search.maven.org/artifact/org.glassfish/legal/1.1/jar

Is there something we should be changing this to now?

According to https://www.eclipse.org/projects/handbook/#legaldoc-distribution final jar has to contain notice and license files.

To move on, I would just completely remove the maven-remote-resources-plugin and put there a logic to get what is needed into the correct location in the final jar. I don't think someone is maintaining org.glassfish:legal these days..

Thanks for the suggestion it is what I was thinking too - I assume this is affecting other projects also? Is there maybe an eclipse resourceBundle I can swap it to I wonder? If not what do you suggest so as not to have to duplicate in src/main/resources/META-INF?

I did find a way actually, I have an issue and some PRs:

Thanks for the help!



thanks,
--lukas


On 3 October 2018 at 11:37, Lukas Jungmann <lukas.jungmann@xxxxxxxxxx <mailto:lukas.jungmann@oracle.com>> wrote:

    Hi,

       I'd bet a beer on the maven-remote-resources-plugin[1] doing
    that. What happens if you just remove that plugin definition/execution?

    thanks,
    --lukas

    [1]:
    https://github.com/eclipse-ee4j/jta-api/blob/EE4J_8/pom.xml#L192
    <https://github.com/eclipse-ee4j/jta-api/blob/EE4J_8/pom.xml#L192>

    On 10/3/18 12:29 PM, Tom Jenkinson wrote:

        I just took a look at the JTA META-INF from a build from EE4J_8
        branch (https://github.com/eclipse-ee4j/jta-api/tree/EE4J_8
        <https://github.com/eclipse-ee4j/jta-api/tree/EE4J_8>) and it
        seems to have a LICENCE.txt in the META-INF folder with the
        following licences in it:
        COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
        The GNU General Public License (GPL) Version 2, June 1991

        This is strange for a few reasons:
        * it mentions CDDL licence instead of EPL and I have no other
        mention of that in the project:
           find . -type f -exec grep -l CDDL {} \;
        ./target/classes/META-INF/LICENSE.txt
        ./target/maven-shared-archive-resources/META-INF/LICENSE.txt
        ./target/test-classes/META-INF/LICENSE.txt
        * I have no idea what is generating that LICENCE.txt as it
        appears nowhere else in the project
        $ find . -name \LICENSE.txt
        ./target/classes/META-INF/LICENSE.txt
        ./target/maven-shared-archive-resources/META-INF/LICENSE.txt
        ./target/test-classes/META-INF/LICENSE.txt

        Any ideas?

        On 20 September 2018 at 02:39, Wayne Beaton
        <wayne.beaton@eclipse-foundation.org
        <mailto:wayne.beaton@eclipse-foundation.org>
        <mailto:wayne.beaton@eclipse-foundation.org
        <mailto:wayne.beaton@eclipse-foundation.org>>> wrote:

             Yes. The LICENSE and NOTICE files should also be present in the
             META-INF/ directories of the produced artifacts.

             Wayne

             On Wed, Sep 19, 2018 at 5:35 PM Dmitry Kornilov
             <dmitry.kornilov@xxxxxxxxxx
        <mailto:dmitry.kornilov@oracle.com>
        <mailto:dmitry.kornilov@oracle.com
        <mailto:dmitry.kornilov@oracle.com>>> wrote:

                 Wayne, can you answer it?

                 — Dmitry

                     On 19 Sep 2018, at 23:03, Joakim Erdfelt
                     <joakim.erdfelt@xxxxxxxxx
            <mailto:joakim.erdfelt@gmail.com>
            <mailto:joakim.erdfelt@gmail.com
            <mailto:joakim.erdfelt@gmail.com>>>
                     wrote:

                     (Resubmitting this question now that my
            subscription is fixed.
                     Apologies if this gets duplicated due to admin
            actions on the
                     mailing list backend)

                     Not sure if this is a requirement of the
            eclipse-ee4j effort,
                     so I'm going to ask.

                     Per the Eclipse ee4j documentation at
            https://github.com/eclipse-ee4j/ee4j/wiki/How-to-release-the-first-Eclipse-version-of-projects
            <https://github.com/eclipse-ee4j/ee4j/wiki/How-to-release-the-first-Eclipse-version-of-projects>
                                <https://github.com/eclipse-ee4j/ee4j/wiki/How-to-release-the-first-Eclipse-version-of-projects
            <https://github.com/eclipse-ee4j/ee4j/wiki/How-to-release-the-first-Eclipse-version-of-projects>>

                     The LICENSE and NOTICE files should be present at
            the root of
                     every source code repository

            git.eclipse.org/project.git
            <http://git.eclipse.org/project.git>
            <http://git.eclipse.org/project.git

            <http://git.eclipse.org/project.git>>
                      ├── LICENSE
                      ├── NOTICE
                      └── ...

                     But something not mentioned in the above doc is another
                     requirement that the Eclipse Foundation has
            historically had.

                     See Eclipse Projects Handbook for Legal Docs at
            https://www.eclipse.org/projects/handbook/#legaldoc
            <https://www.eclipse.org/projects/handbook/#legaldoc>
                                <https://www.eclipse.org/projects/handbook/#legaldoc
            <https://www.eclipse.org/projects/handbook/#legaldoc>>

                     The LICENSE and NOTICE files should also be present
            in the
                     META-INF/ directories of the produced Artifacts.

                     MyFile.jar
                      ├── META-INF
                      │   ├── NOTICE
                      │   └── LICENSE
                      └── ...

                     Are we expected to ensure these files are present
            in the
                     produced Artifacts as well for the eclipse-ee4j
            efforts?

                     - Joakim Erdfelt

                     _______________________________________________
                     ee4j-build mailing list
            ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>
            <mailto:ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>>
                     To change your delivery options, retrieve your
            password, or
                     unsubscribe from this list, visit
            https://dev.eclipse.org/mailman/listinfo/ee4j-build
            <https://dev.eclipse.org/mailman/listinfo/ee4j-build>
                                <https://dev.eclipse.org/mailman/listinfo/ee4j-build
            <https://dev.eclipse.org/mailman/listinfo/ee4j-build>>




             --     Wayne Beaton
             Director of Open Source Projects
             The Eclipse Foundation

             _______________________________________________
             ee4j-build mailing list
        ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>
        <mailto:ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>>
             To change your delivery options, retrieve your password, or
             unsubscribe from this list, visit
        https://dev.eclipse.org/mailman/listinfo/ee4j-build
        <https://dev.eclipse.org/mailman/listinfo/ee4j-build>
             <https://dev.eclipse.org/mailman/listinfo/ee4j-build
        <https://dev.eclipse.org/mailman/listinfo/ee4j-build>>




        _______________________________________________
        ee4j-build mailing list
        ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>
        To change your delivery options, retrieve your password, or
        unsubscribe from this list, visit
        https://dev.eclipse.org/mailman/listinfo/ee4j-build
        <https://dev.eclipse.org/mailman/listinfo/ee4j-build>

    _______________________________________________
    ee4j-build mailing list
    ee4j-build@xxxxxxxxxxx <mailto:ee4j-build@xxxxxxxxxxx>
    To change your delivery options, retrieve your password, or
    unsubscribe from this list, visit
    https://dev.eclipse.org/mailman/listinfo/ee4j-build
    <https://dev.eclipse.org/mailman/listinfo/ee4j-build>




_______________________________________________
ee4j-build mailing list
ee4j-build@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ee4j-build

_______________________________________________
ee4j-build mailing list
ee4j-build@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ee4j-build




_______________________________________________
ee4j-build mailing list
ee4j-build@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ee4j-build


Back to the top