> On May 22, 2017, at 9:54 PM, John D. Ament <[email protected]> wrote:
> ...
> I'm trying to understand the current snapshot and release process for
> Edgent, specifically to make it so that we can easily publish JARs into
> maven central.
> ...

Yeah, the gradle stuff ended up that complicated as a result of preserving 
certain behaviors of the original ant-based build, and being a gradle/maven 
newbie. It would be great to be able to simplify it!  [I wasn’t the author of 
the ant builds.]

The binary build (current and previous) results in a layout of Edgent and 3rd 
party jars:
    java8/<component>/<edgent-jars>
                                  [/ext/<component-dependent-3rd-party-jars>]

The generated Edgent jars include MANIFEST.MF/Class-Path for all immediate 
edgent-jar dependencies and the component’s transitive external dependencies.  
All are specified as relative
paths given the above layout.

Edgent applications need to only include an Edgent component that they directly 
use on the their classpath.  Internal and external transitive dependencies are 
automatically handled by virtue of the manifests' classpath.  In practice they 
need only include the path to the Edgent provider jar (which
takes care of all of the core/lib Edgent jars), and then Edgent jars for 
individual connectors or other
optional components. See [1].

The release mgmt guide [2] steps related to source-release and binary-release 
bundle creation and signing are:
    ./gradlew -Dedgent.snapshotId=“” release
    ./gradlew signAll —no-daemon

See [2] for staging and publishing steps too.

Oh, and there was some additional complication as a result of preserving the 
ability of Edgent-runtime developers to continue to use Eclipse without 
switching to gradle and/or maven [3]

[1] “Building Applications” at the end of 
https://edgent.apache.org/javadoc/latest/index.html 
<https://edgent.apache.org/javadoc/latest/index.html>
[2] 
https://cwiki.apache.org/confluence/display/EDGENT/Release+Manager%27s+Guide 
<https://cwiki.apache.org/confluence/display/EDGENT/Release+Manager's+Guide>
[3] 
https://github.com/apache/incubator-edgent/blob/master/DEVELOPMENT.md#using-eclipse

Hope that helps clarify things.
— Dale

Reply via email to