[hibernate-dev] CI - Default Maven settings

Yoann Rodiere yoann at hibernate.org
Fri Nov 16 12:07:12 EST 2018


Because of recurring issues, I will remove the default Maven settings that
include the JBoss Nexus coordinates from our CI.

Be prepared for build failures on Maven projects (I don't think Gradle
projects will be impacted), and please let me know if you can't solve them.

Generally a failing build can easily be fixed by adding "-s
settings-example.xml" to the Maven arguments, where "settings-example.xml"
is a file in your git repository that should be there for new contributors'
sake anyway.

There are also ways to get rid of the custom settings completely for
non-release builds, but that will require one or two days worth of work,
due to all the places in our builds relying on these settings (Karaf,
Wildfly, ...). If you are interested, just ping me and I can explain what
we did on Search.

As to why:

The idea is that anyone checking out our projects should be able to run
`mvn clean install` and it should "just work"; to check that, our CI builds
should be as similar as possible to a random contributor's environment,
i.e. it should be as little customized as possible.

With that in mind, having custom Maven settings applied by default to all
projects does not make much sense to me, and even seems harmful. In my case
it's harmful because I expected all the necessary configuration, including
the URL of the JBoss Nexus, to be included in Search's POM files, and I
expected the build to fail if anything was missing, allowing me to see that
Search is not contributor-friendly and should be fixed. As it turns out,
because of our CI, it was not the case.

Yoann Rodière
Hibernate NoORM Team
yoann at hibernate.org

More information about the hibernate-dev mailing list