Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakarta.ee-community] targeting JDK 8 *and* JDK 11?

Lukas Jungmann wrote on 9/19/19 5:12 AM:
> Hi Bill,
> 
> On 9/19/19 2:29 AM, Bill Shannon wrote:
>> What's the state of the art for building a jar file that contains class
>> files that will work on JDK 8, and a module-info.class that will work
>> on JDK 11?
> 
> Are you looking just for this or also for ability to have multi-release jars?

I don't need a multi-release jar file.

> Are you looking for slightly more advanced things like module-info being altered
> by the build as needed - ie because you have a main-class in one of the projects
> (maven-jar-plugin:3.1.2+ is required), or you want to include project version in
> module info (maven-compiler-plugin:3.8.1+ is required) etc?

I don't think I need that.

> All JAXB/JAXWS related projects are somehow dealing with this as all of them are
> java modules for some time already and some of them are also multi-release jars;
> jsonp/yasson are another projects to look at eventually - should I pick up some
> examples, jaxb-api can be one of them - it is small project with module-info, a
> multi-release jar and compiles everything exactly ones[1], a project which is
> not MR jar but contains "old" tests which are now being run within JPMS can be
> metro-policy[2] (its double-compilation is going to be fixed in the (near)
> future). Old JAXB/SAAJ/JAXWS 'RI's are another examples should you be looking
> for bigger projects - note that I'm updating them these days to adopt recent
> changes in maven plugins, so what is there today, may be different tomorrow (or
> day after :-))...
> 
>  Based on my experience, if you get on this path, my recommendation is to use
> Maven 3.6.0. 3.6.1 is safe if you don't need to use Eclipse Tycho, with 3.6.2,
> the copyright plugin does not work[3]. If there is a need for Ant, make sure
> 1.10.6+ is used because older versions do not work correctly out-of-the-box if
> the build uses a task from a library which is a multi-release jar[4].
>  As for what maven build plugins to use - general advice is to always use the
> latest versions.

Thanks for the pointers, I'll look at those projects.

> thanks,
> --luksa
> 
> [1]: https://github.com/eclipse-ee4j/jaxb-api/blob/master/jaxb-api/pom.xml
> [2]: https://github.com/eclipse-ee4j/metro-policy/blob/master/policy/pom.xml
> [3]: https://github.com/eclipse-ee4j/glassfish-copyright-plugin/issues/7
> [4]: https://bz.apache.org/bugzilla/show_bug.cgi?id=62952
> 
>   The last time I looked at this all I found were kludges
>> that resulted in compiling everything twice, or very complex Maven
>> configurations that depended on using multiple versions of the JDK
>> to compile.  Is there a better way?  Is there an existing project
>> that would be a good example?
>> _______________________________________________
>> jakarta.ee-community mailing list
>> jakarta.ee-community@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or unsubscribe from
>> this list, visit
>> https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>>
> _______________________________________________
> jakarta.ee-community mailing list
> jakarta.ee-community@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit
> https://www.eclipse.org/mailman/listinfo/jakarta.ee-community


Back to the top