Maven artifact

162 views
Skip to first unread message

Daniel Heinrich

unread,
Sep 19, 2013, 3:19:26 AM9/19/13
to yeppp-...@googlegroups.com
Hi, I wonder if you plan to provide a Maven artifact for Yeppp for the Java version.

Marat Dukhan

unread,
Sep 19, 2013, 3:27:29 AM9/19/13
to Daniel Heinrich, yeppp-...@googlegroups.com
Hi Daniel,

I did not have such plans. However, I am not an active user of Maven.
Could you please explain why it might be helpful?

Regards,
Marat


On Thu, Sep 19, 2013 at 3:19 AM, Daniel Heinrich <dannyn...@gmail.com> wrote:
Hi, I wonder if you plan to provide a Maven artifact for Yeppp for the Java version.

--
You received this message because you are subscribed to the Google Groups "yeppp-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yeppp-discus...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Daniel Heinrich

unread,
Sep 19, 2013, 4:51:52 AM9/19/13
to Marat Dukhan, yeppp-...@googlegroups.com
In the Java ecosystem exist many build systems were the most popular are probably maven, grandly and ivy. All of these systems support some sort of dependency management, where on can describe in the build configuration the needed dependencies. These dependencies are retrieved from external repositories if not found locally.

Maven Central is the biggest one of those repositories and supported by all build systems in some way. Publishing a maven artifact to Central would enable all Java,Scala,Groovy ... developers to use Yeppp without downloading the lib and having to manage different library versions by themselves. 

How to do such release is described in detail on the site of the creaters of maven: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide


Best regards,

Daniel


2013/9/19 Marat Dukhan <mar...@gmail.com>

Marat Dukhan

unread,
Sep 19, 2013, 3:29:56 PM9/19/13
to Daniel Heinrich, yeppp-...@googlegroups.com
Ok, I think publishing on Maven Central makes sense.

Yeppp! provides two Jar packages: yeppp.jar (Java classes for bindings) and
yeppp-bundle.jar (Java classes + platform-specific binaries). yeppp-bundle.jar
is easier to use for desktop apps, but it is not suitable when targeting Android.

Should I publish both Jars on Maven? If so, how do I publish platform-specific
Yeppp binaries (libyeppp.so/libyeppp.dylib/yeppp.dll) for yeppp.jar?

Regards,
Marat

Daniel Heinrich

unread,
Sep 20, 2013, 6:46:09 AM9/20/13
to yeppp-...@googlegroups.com, Daniel Heinrich
The way to go would be to split all the natives into platform specific artifacts(so yeppp_linux_x64.jar ...). And then set them as dependencies for the yepp.jar in platform specific profiles.
This could look like this: https://gist.github.com/Danny02/6635778

When someone then adds yeppp as a dependency he would only get the platform binaries he needs(platform on which he builds his project). If he wants to include all platforms he can do so by activating the wanted profiles manually in his build.

Which platform names are aplicable in the profiles are documented here: http://maven.apache.org/enforcer/enforcer-rules/requireOS.html

Marat Dukhan

unread,
Sep 20, 2013, 9:45:57 AM9/20/13
to Daniel Heinrich, yeppp-...@googlegroups.com
The combination of os.name and os.arch is not enough to choose the platform-specific binaries.
There may be several incompatible C ABIs for the same os.name & os.arch values.
For example, ARM systems may use soft-float ABI
(which pass floating-point parameters in integer registers) or
hard-float ABI (which pass floating-point parameters in floating-point registers).
They both have os.arch == "arm". The dispatcher in Yeppp! bindings
parses ELF headers to detect the ABI type, but I doubt Maven does the same:

Regards,
Marat

Karthik Kumar Viswanathan

unread,
Sep 20, 2015, 5:50:02 AM9/20/15
to yeppp-discuss
I created one myself.

My directory looks like this:

    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.jar
    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.jar.md5
    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.jar.sha1
    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.pom
    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.pom.md5
    new file:   info/yeppp/yeppp-bundle/1.0.0/yeppp-bundle-1.0.0.pom.sha1

My maven dependency reads like this:

    <dependency>
      <groupId>info.yeppp</groupId>
      <artifactId>yeppp-bundle</artifactId>
      <version>1.0.0</version>
    </dependency>

I'm attaching the pom file for reference, Checksums are:

yeppp-bundle-1.0.0.jar.sha1:af874aceb04d5388b9007b3576b8c6fdba4f76a3
yeppp-bundle-1.0.0.pom.sha1:7b849c63dfc84a15646259e182f5ba91b431415c
yeppp-bundle-1.0.0.jar.md5:a9b1a7183925b618d3a819452c056d14
yeppp-bundle-1.0.0.pom.md5:52a78bddbf1a36078a65e55be1e7b409

I hope you find this useful. Enjoy.
yeppp-bundle-1.0.0.pom

Karthik Kumar Viswanathan

unread,
Sep 20, 2015, 6:00:46 AM9/20/15
to yeppp-discuss
Oops. The pom has a bad artifactId (but works), now I set it to yeppp-bundle. Attaching new POM.

Checksums are:

yeppp-bundle-1.0.0.pom.sha1: dcc10cdb7d6728cf5bf2cef6c86be27725bbd48f
yeppp-bundle-1.0.0.pom.md5: c54a4d7636212dd722b354d907b17887
yeppp-bundle-1.0.0.pom

Marat Dukhan

unread,
Sep 21, 2015, 9:09:52 AM9/21/15
to Karthik Kumar Viswanathan, yeppp-discuss
Thank you Karthik,

I will take a look.

Note that the upstream Yeppp! converted Java code comments to javadoc-compatible format specifically to include the docs into maven artifact.

Regards,
Marat

--
You received this message because you are subscribed to the Google Groups "yeppp-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yeppp-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages