Re: Migration to Maven - Mailing list pgsql-jdbc

From Stephen Nelson
Subject Re: Migration to Maven
Date
Msg-id CAHpHs3=5Q96oUiCS2Xtk9av=gr5sQAUGts6aOSBDyMb7BfGmMw@mail.gmail.com
Whole thread Raw
In response to Re: Migration to Maven  (Vladimir Sitnikov <sitnikov.vladimir@gmail.com>)
Responses Re: Migration to Maven  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc

Sorry for top posting but using a mobile device.

There is a Maven plugin Animal Sniffer to check if you are breaking JDK compatibility.

I'm happy with either option so let's get this PR merged before the end of 2015!

On Mon, 30 Nov 2015, 21:18 Vladimir Sitnikov <sitnikov.vladimir@gmail.com> wrote:

>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: Dave Cramer
Date:
Subject: Re: Migration to Maven
Next
From: Dave Cramer
Date:
Subject: Re: Migration to Maven