On 06/10/17 13:01, Rémy Maucherat wrote:
> On Fri, Oct 6, 2017 at 10:18 AM, Mark Thomas <ma...@apache.org> wrote:
> 
>> The usual candidate for an alternative build system is Maven. The
>> argument for Maven is that it is more widely known and hence easier to
>> get started with. The argument against is broadly that Maven is very
>> opinionated and they way Tomcat currently does things is not consistent
>> with what Maven expects and some things (e.g. the Windows installer) are
>> well outside the typical Maven build. Therefore switching to Maven would
>> require a fair amount of effort.
>>
>> I'd like to suggest a third alternative: Gradle. The argument for Gradle
>> is that it can boot-strap itself so, unlike Ant, a new user doesn't need
>> to download the build tool. Gradle can also import Ant build files so we
>> could start with a simple Gradle script that simply imported the current
>> Ant script and then migrate slowly over time. The argument against is
>> that it isn't as widely known as Maven.
>>
>>
>> My own views are neutral at this point on modularisation. I don't have
>> any immediate suggestions for changes but I'd like to hear what ideas
>> others have. On build systems, I'm not convinced that the benefits of
>> switching to Maven justify the costs. Gradle looks promising and I do
>> like the boot-strapping feature. If there was consensus to move to
>> Gradle, I'd be willing to help that process.
>>
> On Java 9 modularisation I'm super neutral too. Especially since it
> wouldn't bring anything to Tomcat IMO.

For Java 9 modules, I can see some benefits to defining Java 9 modules
to be consistent with the names and dependencies we already have.
Primarily, if a user adds a module (not using Maven) then they'll get
notified about missing dependencies when they try and build it. That is
about the only benefit I can see though and it is a fairly small one.

> On the build and source structure, I'd say the first decision should be
> another yes/no on Maven, since that's what everyone else has been asking
> about. Then if it's still a no, we can make another decision on Gradle.

I remain unconvinced that the benefits of switching to Maven would
justify the costs.

The previous experiments have shown that it is not practical to keep the
current source code structure and use Maven.

See:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-mvn-build

It is 6 years old (and for 7.0.24) but you get the idea. Note that:
- I had to build and run with Java 7 to avoid various class version
  issues
- It is incomplete (e.g. no Windows Installer build)

Benefits:

- More widely known, so easier/faster for newcomers to pick up

- Standard project structure makes it easier/faster for newcomers to
  navigate

- Producing OSGI bundles would be simpler

- Bootstrap wrapper available

Costs:

- The code would need to be split into multi-modules

- Back-ports would become more difficult unless all currently supported
  versions were also back-ported (which increases the costs of
  transition)

- If we change the layout of the currently supported versions, that will
  create costs for downstream packagers

- We'd need to write a code-signing plug-in for Maven

- We'd need to write a plug-in to use NSIS or continue to use Ant for
  the Windows Installer


Overall, I remain firmly unconvinced that a move to Maven is in the best
interests of Apache Tomcat. The time that would be required to migrate
to Maven would be significant and would disrupt the project for an
extended period of time (my expectation is several months). It would
also disrupt down-stream users. That is a significant cost. While I
don't deny there are potential benefits, those benefits are - in my view
- significantly smaller than the associated costs.

Another concern is that switching to Maven would not be a small,
reversible change. It would be reversible but the effort required, both
to make the change and to reverse it, would not be small.

I haven't seem any significant movement from the last time we discussed
this so I don't think we need a vote or anything. That said, I've no
objection to a vote being held if a committer wishes to call one.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to