Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maven central repo (again) #3109

Closed
poqudrof opened this issue Feb 17, 2015 · 13 comments
Closed

Maven central repo (again) #3109

poqudrof opened this issue Feb 17, 2015 · 13 comments

Comments

@poqudrof
Copy link

Hey Processing guys,

I have been doing Processing for a few years now, and I love it !
As I'm building libraries using Processing I switched to Maven to ease and automate compilation (from Netbeans projects).

Well, there is no Processing project in the maven central repository it is a pain to add the project and deploy easily. Consequently I would like to take care of this.

Everything seems quite straightfoward for the name : 
GroupID : org.processing
ArtifictID : core / pde / video
version : 2.2.1 (and maybe 3.0ax)

I think supporting the distributed releases would be enough. I may add 2.0.3 and 1.5.1 and other versions that lasted a long time.

If you are ok with it I will ask to get the project to the central repository, and start the process. It is not required for the project to compile on the central repository but they need the sources. As soon as I have something working I will notify here and provide the pom.xml linked to the project.

Cheers,

Jeremy.

@poqudrof
Copy link
Author

I have a pom.xml going for the Processing "core". As I want to go on top on existing building scripts, it calls ant to compile, and uses Maven to package, sign & deploy.

Where could I find the JOGL version number shipped with Processing ? And in the same way the other dependencies version numbers.
I have this one working : 

    <dependency>
        <groupId>org.jogamp.jogl</groupId>
        <artifactId>jogl-all</artifactId>
        <version>2.1.4</version>
    </dependency>

And GStreamer :

    <dependency>
        <groupId>com.googlecode.gstreamer-java</groupId>
        <artifactId>gstreamer-java</artifactId>
        <version>1.5</version>
    </dependency>

This is not urgent at all. It is mainly to help library developers and to ease the dependency management.

@schwittlick
Copy link

I really like your initiative. What would be the pom.xml for the Processing core? Is there any way to support you?

@poqudrof
Copy link
Author

It is online now for the latest release version on maven central. It is not the exact same core.jar as the one shipped with Processing but it is the version tagged "version 2.2.1" in github. However, it should be fully compatible.
It is a custom compiled version so that I can deploy easily and automatically. So there is s a pom, jar (class & Cie), javadoc (2nd jar) and sources (3rd jar).

Here is what to include to your pom.xml :

  <dependency>
    <groupId>org.processing</groupId>
      <artifactId>core</artifactId>
      <version>2.2.1</version>
    </dependency>

With the core, I added pde for the app folder in the source and pde.jar.
I also put the libraries that compile with Processing : serial, net, video and pdf. As video is removed in Processing 3 I will also publish video with a version 3.0.0 with the latest video library to indicate the compatibility with Processing 3.

I work on a "meta pom" that contains all the sub projects.
I will also release a library example similar the one in the processing-library-template. This time with maven compilation and bash creation of the library instead of Eclipse. It is easier to compile & deploy from command line and compatible with Netbeans.

Cheers.

@lmmworkv
Copy link

This would be hugely valuable to me; it's the difference between being able to use Processing and not. Is there any way I can help ensure that this is merged / maintained?

@poqudrof
Copy link
Author

I have a fork of Processing in which I have the maven files I used to deploy :  
https://github.com/poqudrof/processing/tree/release2.2.1
The resulting version is not exactly the same jars as the one distributed but the code should be the same.

If you want to use Processing 3.05a I could add it also. As it is a pre-release for now I published as a SNAPSHOT I think.
I could add 1.5.1 as it is back in the download page on the Processing website.

Let me know if you have any issues.

@lmmworkv
Copy link

2.2.1 is fine for my use case, and it's there in maven central with correct source/javadoc which is hugely helpful. I was more trying to offer my help going forward; it would be great for the maven build to be first-class, having a non-maven build system is a big barrier to contributing (at least, it's put me off trying).

@poqudrof
Copy link
Author

In my experience the ant building system is quite effective. I did not have any experience with it and still managed to figure how the build system was working. It is much more clear than many build systems including maven it seems.
Just like maven it is quite easy to install and use. Just follow the how to build processing guide and it should be ok.

@Munzey
Copy link

Munzey commented Jul 21, 2015

nice job 👍
what do you think of pushing the 3.x alpha versions as snapshots to OJO? then once a stable release is out it can go on bintray

@poqudrof
Copy link
Author

I pushed the 3.0a10 on maven central.

@Munzey
Copy link

Munzey commented Jul 26, 2015

nice! word of warning, if you're trying to use 'org.processing:processing-complete:3.0a10' I think its going to try resolve the dependencies through oss.sonatype, which currently only has the 2.2.1 versions still up. Because I have clojars declared as a repo, gradle just resolves the 2.2.1 dependencies from there instead. For now you will have to just declare the specific processing modules you need, e.g 'org.processing:core:3.0a10'
Edit(2): gradle will still try resolving 'org.processing:processing-complete:3.0a10' as its declared as a parent in the 'org.processing:core:3.0a10' pom (but only if you have another repository declared that has the module on it, i.e clojars)
Edit(3) scratch that, I was under the impression that the processing-complete pom was somehow acting as a container for the different modules, however that doesnt seem to be the case 😩 gradle was just downloading stuff from clojars because the version of controlp5 hosted there has a whole slew of transitive dependencies.
Tl;dr: declare the specific processing modules you need, don't use processing-complete

@poqudrof
Copy link
Author

The processing-complete is a meta project to handle the common properties of the project. It is build for maven and indeed does not have any code, binary or doc associated. I agree that the name is confusing.

@Munzey
Copy link

Munzey commented Aug 12, 2015

for anyone interested, using the jogamp jogl and gluegen-rt jars as dependencies from the maven repos won't work due to native libs not loading, see here. One solution is to create fat jar equivalents. I have written some tasks in the gradle build of my project to do so. see here. unfortunatley i had to create two seperate tasks for each fat jar, one to wrap everything up, and the other to insert the correct manifest, gradle manifest closure was acting funny. anyway 3.10a is working nicely!

@benfry
Copy link
Contributor

benfry commented Aug 13, 2015

The forum is a more suitable place for this discussion: http://forum.processing.org/two/categories/developing-processing

@benfry benfry closed this as completed Aug 13, 2015
@processing processing locked and limited conversation to collaborators Aug 13, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants