Hi,

No need to switch from Ant to Maven to automate the maven jar upload.

You can add the distribution of xalan's jars to MC via nexus.a.o in Ant script (the ant script will use/call maven for upload, so need maven on the build machine but no need pom.xml).

You can see a sample in JMeter project before v5.1.1 (after the project have been move from ant to maven and Subversion to Git)

See : http://svn.apache.org/repos/asf/jmeter/trunk/  (build.xml file)

On targets  _dist_maven / maven_upload in build.xml

I can help if need.

Milamber

==== Some notes on the settings of Maven on build machine ====

Maven must be installed on machine

$ cat genpass.sh
mvn -ep "your_asf_password"

$ sh genpass.sh
{zupqrxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxneQBEe}   <=== Your_Encrypted_Password



If you want to try out the Maven targets, update workspace and build
(ant package)

Note: Environnement variable M2_HOME must be set.
(In Eclipse, External Tools Configurations box > Ant Build maven task > Environment tab) (In command-line, declare an enviromment variable with "export M2_HOME=/path/to/maven_home")

Then create the poms/jars:

 ant _dist_maven -Djmeter.version=2.6-SNAPSHOT

[might add this to the distribution target later]

Then

 ant maven_upload

will create the a local repo under target/deploy.

If that works OK, then it is picking up Maven.


You can then try uploading to the snapshots repo:

If needed, add or modify your $HOME/.m2/settings.xml with this lines :

<settings>
[...]
  <servers>
    <server>
      <id>apache.snapshots.https</id> <!-- For Snapshots -->
      <username>ASF_Login</username>
      <password>{Your_Encrypted_Password}</password>
    </server>
    <server>
      <id>apache.releases.https</id> <!-- For Releases -->
      <username>ASF_Login</username>
      <password>{Your_Encrypted_Password}</password>
    </server>
  </servers>
[...]
</settings>

ant maven_upload -DrepoType=snapshots

For signing target which can loop through all the dist artifacts (archives, poms, jars). That will need GPG installed, preferably GPG 2.x


Ref. http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-encrypting-passwords/



===================================================


On 10/04/2023 21:07, Gary Gregory wrote:
I think the best path forward would be to switch the build to Maven but that's probably a non-trivial amount of work. Or add a pom.xml to the project and make that a 2.7.4 release.

Gary

On Mon, Apr 10, 2023, 10:10 Eric J. Schwarzenbach <eric.schwarzenb...@wrycan.com <mailto:eric.schwarzenb...@wrycan.com>> wrote:

    Hi Mukul,

    This isn't about what is used to build Xalan, but about what Xalan's
    users use to build their projects and ensure they use Xalan with
    correct
    dependencies. Maven is what a large chunk of Java users use for
    dependency management, and they typically expect to be able to
    pull the
    dependency definitions from Maven central. Of course they can each
    individually set this up locally instead, but it is more ideal to
    have
    central source of correct information. Maven central serves that role
    and contains such definitions for previous versions of Xalan.

    Of course the Xalan devs do not necessarily have to be the ones
    submitting this to maven central, some Xalan user more familiar with
    maven, like Richard or myself, could probably step up and do this.
    However it would be helpful for a Xalan dev to chime in regarding the
    correct / necessary versions of dependencies. I posted a query for
    clarification about one such dependency version recently
    (xml-apis.jar)
    to this list but have not as yet seen a reply. Perhaps it will
    help to
    give more context, if you are not a maven user yourself.

    Typically when a Maven user sets up the maven dependency
    definitions for
    a new version of something, they will start with the previous
    versions
    definitions as a starting point. The definitions in maven central for
    Xalan 2.7.2, declares two (compile) dependencies: xercesImpl 2.9.1
    and
    serializer 2.7.2. Note that such dependency declarations will cause a
    user's project build to pull in these dependencies automatically,
    so a
    projecting declaring xalan 2.7.2 will get xercesImpl 2.9.1
    automatically. Some users like myself, have project that also
    depend on
    xerces directly and realize that newer versions of xerces have
    come out
    and define their project to reference a newer version of xerces like
    2.12.2.

    xercesImpl in turn has a maven definition that declares a
    dependency on
    xml-apis. xercesImpl 2.12.2 specifies xml-apis 1.4.01. The is the
    latest
    version of xml-apis appearing in Maven central (ignoring the versions
    2.0.0 and 2.0.2 which are actually older than 1.4.01...I forget the
    story there.)

    To reiterate my earlier query, I notice that the jars included
    with the
    xalan 2.7.3 download include an xml-apis that seems to be version
    1.4.02. Is it necessary or in some way desirable to use xalan
    2.7.3 with
    that version of xml-apis rather than to let the xercesImpl dependency
    pull in xms-apis 1.4.01? If so, maybe we need to declare that as
    direct
    dependency of the xalan maven definition, and load that artifact to
    maven central also. But where does it come from? What project manages
    and produces this jar?

    Any advice here would be much appreciated by maven users, either for
    setting up their own local maven dependency definitions, or
    (preferably)
    for someone to submit a canonical definition to maven central.

    Thanks,

    Eric



    On 4/7/23 02:40, Mukul Gandhi wrote:
    > Hi Richard,
    >
    > On Thu, Apr 6, 2023 at 5:08 PM Richard Atkins
    <richatk...@atlassian.com <mailto:richatk...@atlassian.com>> wrote:
    >
    >> I'm so happy to see that 2.7.3 is finally released, and
    available for download from xalan.apache.org
    <http://xalan.apache.org>. One question though: will you be
    publishing this to maven any time soon? It looks like the
    xalan-java repo doesn't have any ivy.xml configuration, so it
    would need to be configured following the docs in
    https://infra.apache.org/publishing-maven-artifacts.html . And it
    would be a good idea for the release docs to be updated to
    reference it too.
    > The Apache project release process, allows apache projects to
    follow a
    > Maven or Ant based build process. XalanJ currently has a build
    > process, based on Ant, because of which we build XalanJ via Ant
    build
    > tooling. XalanJ releases, its builds as stand-alone jars (packaged
    > within a .zip or tar.gz files), which can be downloaded and used by
    > users.
    >
    > I believe, XalanJ users can fairly easily, locally configure their
    > Maven builds to use the Apache released XalanJ.
    >
    >


Reply via email to