Re: Migration to Maven - Mailing list pgsql-jdbc

From Vladimir Sitnikov
Subject Re: Migration to Maven
Date
Msg-id CAB=Je-Fer_GdWcieQUTeFTu95h8YB8-v=wM3dXU-Vr+Ar+jUrg@mail.gmail.com
Whole thread Raw
In response to Re: Migration to Maven  (Stephen Nelson <stephen@eccostudio.com>)
Responses Re: Migration to Maven  (Steven Schlansker <stevenschlansker@gmail.com>)
Re: Migration to Maven  (Stephen Nelson <stephen@eccostudio.com>)
List pgsql-jdbc
>but has the downside or creating additional workload

Another downside is inability to test if PR breaks build for JDK 6.
Note: development of "current" version should be done via JDK8, so it
is super easy to use new APIs by mistake (e.g. Map#replace,
Map#getOrDefault, or whatever).

Current travis CI setup is very good as it provides fast feedback for
different JDKs.


I've updated https://github.com/pgjdbc/pgjdbc/pull/435 to reflect option A.
It does exclude all the testing as I was focused on a release procedure.
It does point to my github fork as release involves git tag/push/etc.

I use the same artifactId, and include JRE to version.
There are two reasons for that:
1) That ensures there will be just a single pgjdbc artifact in classpath
2) It will simplify life for third party projects, as switch from
pgjdbc-jre7 to pgjdbc-jre8 artifactId would require updating of lots
of poms while version can be fixed in a dependencyManagement, thus
there can be a single "9.4-jre7" to "9.4" switch.

maven-toolchains-plugin allows to specify per-module JDK version, so
you just mvn and it uses the proper JDK.
I did not figure proper travis configuration yet, however I think it
should not be hard.

It boils down the release procedure to:
Release for jre8
1) mvn release:clean release:prepare, enter, enter, enter
2) mvn release:perform

Release for jre7
3) cd core-jre7; mvn release:clean release:prepare, enter, type <next
version>; enter, enter
4) mvn release:perform

Release for jre6
3) cd core-jre6; mvn release:clean release:prepare, enter, type <next
version>; enter, enter
4) mvn release:perform

For regular JDK8 development, it does not require you to setup toolchains.xml.
However, if you do, you'll be able to build core-jre7 with a matter of
mvn install (no need to play with java_home).

Vladimir


pgsql-jdbc by date:

Previous
From: Stephen Nelson
Date:
Subject: Re: Migration to Maven
Next
From: Steven Schlansker
Date:
Subject: Re: Migration to Maven