Uwe created XALANJ-2578:
---------------------------

             Summary: Maven build system for Xalan-J
                 Key: XALANJ-2578
                 URL: https://issues.apache.org/jira/browse/XALANJ-2578
             Project: XalanJ2
          Issue Type: Improvement
      Security Level: No security risk; visible to anyone (Ordinary problems in 
Xalan projects.  Anybody can view the issue.)
          Components: Xalan
    Affects Versions: The Latest Development Code
            Reporter: Uwe
            Assignee: Steven J. Hathaway
             Fix For: The Latest Development Code


I have developed Maven POM files to build Xalan-J with Maven instead of Ant. 
The additions attempt to be non-intrusive, leaving the existing
ant build system untouched. For this reason, the POMs are not as lean
as they could be (see below).

I've run the minitest suite ('ant smoketest.gump'), and it all works
fine on a fresh checkout.

This patch is intended as a basis for discussion, as there are still a
few questions open:

* Will this replace the ant build? (preferably yes, we could make the
POMs much leaner by moving sources into standard Maven directories;
less maintenance)
* What will be the target version number? (see below for details)
* How do we integrate testing? (it's currently in a separate project,
and that's a good thing - but running it from Maven would be nice)

Overview
========

There is a project parent POM, which groups the project into the
following modules:
* serializer (builds serializer.jar, from the
org.apache.xml.serializer.* packages)
* xalan-impl (builds an intermediate jar from the rest of the sources)
* xalan (builds xalan.jar, using the maven shade plugin to integrate
xalan-impl and dependent libraries into an uber-jar - this replicates
the output of the ant build process)

Output artifacts (xalan.jar and serializer.jar) are placed in the
'build' directory, like in the ant build. The groupId and artifactId
are the same as the ones in Maven Central for Xalan-J 2.7.1

Details
=======

In the Maven build, dependent libraries (BCEL, java_cup, regexp) are
pulled from Maven Central and differ slightly in version from what's
checked into SVN in the lib-directory.
The same goes for the tools directory; the Maven tooling uses
artifacts from Maven central and ignores the tools directory
altogether.

Since the versioning scheme in the project differs from standard Maven
versioning (2.7.D2 for a defelopment version of 2.7.2 vs its Maven
equivalent 2.7.2-SNAPSHOT), I've left it with Maven standard for now.
The current version in the POMs is set to 2.8-SNAPSHOT, as I'd expect
a change like this to go into a minor release rather than a bugfix
release.

Because the versioning question is still open, the POMs leave
Version.java in both serializer.jar and xalan.jar alone. Depending on
what we decide to do with project versioning and whether or not we
preserve the ant build (preferably no), the way the Version classes
operate will need to change (either read the version from a generated
property file, read it from META-INF or use Maven filtering).
Currently, the ant build simple overwrites them and removes them on
clean (even though they're checked in).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to