# Processing 4 Core Maven Artifact

**URL:** https://discourse.processing.org/t/processing-4-core-maven-artifact/27334
**Category:** Gallery
**Created:** [January 24, 2021, 2:13pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334 "2021-01-24T14:13:46Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![micycle](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/micycle/32/201_2.png) [@micycle](https://discourse.processing.org/u/micycle)
#### Post date: [January 24, 2021, 2:13pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/1 "2021-01-24T14:13:46Z")

</div>

I’ve set up a Github repo that hosts Processing 4’s core library as a Maven dependency/artifact via JitPack.

Now you can easily use the newer Processing core in a Maven project (the last version on _[mvnrepository.com](http://mvnrepository.com)_ is approaching 3 years old!).

Instructions on the repo readme:

> **[micycle1/processing-core-4](https://github.com/micycle1/processing-core-4)**
>
> Processing4's core lib hosted for Maven via Jitpack

---

<div class="post-metadata">

### Author: ![maxandersen](https://avatars.discourse-cdn.com/v4/letter/m/6bbea6/32.png) [@maxandersen](https://discourse.processing.org/u/maxandersen)
#### Post date: [August 28, 2021, 3:39pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/2 "2021-08-28T15:39:30Z")

</div>

I had same problem so took your idea and made [GitHub - maxandersen/processing4 at jitpack](https://github.com/maxandersen/processing4/tree/jitpack) and now I can use latest version from [https://jbang.dev](https://jbang.dev) using:

//REPOS jitpack,mavencentral  
//DEPS com.github.maxandersen:processing4:jitpack-SNAPSHOT

The difference is I added jitpack.yml and forked from the real repo making it fairly trivial to stay uptodate.

---

<div class="post-metadata">

### Author: ![monkstone](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/monkstone/32/64_2.png) [@monkstone](https://discourse.processing.org/u/monkstone)
#### Post date: [August 28, 2021, 7:35pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/3 "2021-08-28T19:35:09Z")

</div>

I don’t know whether you noted that the latest processing uses “jogl/v2.4.0-rc-20210111”? It makes quite a difference.

---

<div class="post-metadata">

### Author: ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)
#### Post date: [August 28, 2021, 11:16pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/4 "2021-08-28T23:16:39Z")

</div>

Thanks for sharing these! The current Processing Maven landscape that I am aware of (IANA Maven user):

- JitPack of Processing 4 core – (2021-08-27) from master at @3906449, post 4.0 beta 1  
[GitHub - maxandersen/processing4 at jitpack](https://github.com/maxandersen/processing4/tree/jitpack)
- JitPack of Processing 4 core – (2021-01-24) from 4.0 alpha 3  
[GitHub - micycle1/processing-core-4: Processing 4 core as a Maven artifact via JitPack](https://github.com/micycle1/processing-core-4)
- Processing 4 core (2020-07) from “Sams July Staging” – probably from ~[113e849](https://github.com/processing/processing4/commits/staging_july_2020_sam):  
[GitHub - monkstone/processing4-core: Maven build of a processing 4 Snapshot](https://github.com/monkstone/processing4-core)
- libp5x – (2021-05-13) 3.5.3 by neilcsmith  
[GitHub - praxis-live/libp5x: Modularized fork of Processing Core libraries](https://github.com/praxis-live/libp5x/)  
[Maven Central Repository Search](https://search.maven.org/search?q=g:org.praxislive.libp5x)
- Processing 3 core and complete – (2018-03) 3.3.7 – by [poqudrof (Jeremy Laviole) · GitHub](https://github.com/poqudrof)  
[Maven Central Repository Search](https://search.maven.org/artifact/org.processing/core)  
[Maven Central Repository Search](https://search.maven.org/artifact/org.processing/processing-complete)
- Processing 2 – (2015-03) 2.2.1  
[Maven Central Repository Search](https://search.maven.org/artifact/org.processing/complete)

For related discussion of the origins of the unofficial 3.3.7 maven distribution by poqudrof used in [papart](https://github.com/natar-io/PapARt/blob/master/papart/pom.xml#L132), why it fell out of date at 3.3.7 while Processing continued to 3.5.4, and the fact that there is no official Maven distribution of Processing 3.x or 4.x, see:

- [Maven repository release for Processing 3.4? · Issue #5666 · processing/processing · GitHub](https://github.com/processing/processing/issues/5666)
- [Maven artifacts for releases after 3.3.7 · Issue #6006 · processing/processing · GitHub](https://github.com/processing/processing/issues/6006)

**Edit** added libp5x

---

<div class="post-metadata">

### Author: ![maxandersen](https://avatars.discourse-cdn.com/v4/letter/m/6bbea6/32.png) [@maxandersen](https://discourse.processing.org/u/maxandersen)
#### Post date: [August 29, 2021, 9:43pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/5 "2021-08-29T21:43:07Z")

</div>

Unfortunately that library is not published in maven central either nor is it to be found in [Index of /deployment/maven/org/jogamp/jogl/jogl-all-main](https://jogamp.org/deployment/maven/org/jogamp/jogl/jogl-all-main/) - seems like published stopped in 2016 ;/

Unfortunately can’t figure out where the true source repo are for that latest version…

---

<div class="post-metadata">

### Author: ![maxandersen](https://avatars.discourse-cdn.com/v4/letter/m/6bbea6/32.png) [@maxandersen](https://discourse.processing.org/u/maxandersen)
#### Post date: [August 29, 2021, 9:44pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/6 "2021-08-29T21:44:19Z")

</div>

so its out of date because noone is maintaining it but afaics it can be automated - the biggest challenge is that the dependencies processing has is _also_ not in any maven repository making it much harder to make easy to maintain ;/

---

<div class="post-metadata">

### Author: ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)
#### Post date: [August 30, 2021, 11:13am UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/7 "2021-08-30T11:13:58Z")

</div>

libp5x, which is Processing 3.5.3 modularized and adapted to use Java 11+ and LWJGL, is published via Maven Central. Also some examples at - [GitHub - codelerity/libp5x-examples: Examples using libp5x](https://github.com/codelerity/libp5x-examples/)

It will be updated to be compatible with Processing 4 at some point after that has a final release. Although some of the gains are already there.

---

<div class="post-metadata">

### Author: ![monkstone](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/monkstone/32/64_2.png) [@monkstone](https://discourse.processing.org/u/monkstone)
#### Post date: [August 30, 2021, 1:38pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/8 "2021-08-30T13:38:57Z")

</div>

Processing4 builds OK with jogl-2.3.2, but you really need the jogl-2.4-rc jars at runtime, in my ruby processing projects I use a [Rakefile](https://github.com/ruby-processing/JRubyArt/blob/master/Rakefile) to copy jars into my rubygems. Although it seems someone has posted [maven artifacts](https://mvnrepository.com/artifact/com.metsci.ext.org.jogamp.jogl/jogl-all-main/2.4.0-rc-20200202).

---

<div class="post-metadata">

### Author: ![micycle](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/micycle/32/201_2.png) [@micycle](https://discourse.processing.org/u/micycle)
#### Post date: [November 25, 2021, 9:23pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/9 "2021-11-25T21:23:40Z")

</div>

I’ve just done a similar thing for Processing **3.5.4**.

> **[GitHub - micycle1/processing3: Processing 3 core as a Maven artifact via JitPack](https://github.com/micycle1/processing3)**
>
> Processing 3 core as a Maven artifact via JitPack. Contribute to micycle1/processing3 development by creating an account on GitHub.

Now there was an 3.5.4 artifact out there (under _quil.processing-core_, available from Clojars) but it didn’t have javadocs or source code attached to it, so neither of these could come through on an IDE. With this Jitpack release, they can do, which makes it better to work with:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/4/45ed135ce53ae6e1571937f0a831642f9e4e8811.png)

---

<div class="post-metadata">

### Author: ![micycle](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/micycle/32/201_2.png) [@micycle](https://discourse.processing.org/u/micycle)
#### Post date: [January 24, 2022, 7:19pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/10 "2022-01-24T19:19:17Z")

</div>

Have just updated the artifact to the latest beta release: 4.0b4.

```auto
<dependency>
    <groupId>com.github.micycle1</groupId>
    <artifactId>processing-core-4</artifactId>
    <version>4.0b4</version>
</dependency>

```

---

<div class="post-metadata">

### Author: ![hamoid](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hamoid/32/58_2.png) [@hamoid](https://discourse.processing.org/u/hamoid)
#### Post date: [December 14, 2022, 3:24pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/11 "2022-12-14T15:24:35Z")

</div>

Thank you for creating this package @micycle 🙂

I tried to use your latest release (4.1.1) on an Intel Mac. It works in Java2D mode but crashes with P2D using an empty sketch that just calls `size()`.

Do you know why this could be?

**Update** : maybe it’s the JDK, as mentioned in [How to make 3D with Processing core library - #6 by matthewortega](https://discourse.processing.org/t/how-to-make-3d-with-processing-core-library/19710/6)

**Update** : I made it work by doing two things:

1. Added this to the `build.gradle.kts` file

```plaintext
java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
        vendor.set(JvmVendorSpec.ADOPTIUM)
    }
}

```

1. On the command line I install this Java JDK

```auto
brew install --cask temurin

```

---

<div class="post-metadata">

### Author: ![micycle](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/micycle/32/201_2.png) [@micycle](https://discourse.processing.org/u/micycle)
#### Post date: [December 18, 2022, 11:27am UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/12 "2022-12-18T11:27:48Z")

</div>

Since 4.1.1, the source code for processing core contains some Java 17, so your Java project needs to be 17+ too (as you’ve found).

---

<div class="post-metadata">

### Author: ![hamoid](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hamoid/32/58_2.png) [@hamoid](https://discourse.processing.org/u/hamoid)
#### Post date: [December 19, 2022, 2:38pm UTC](https://discourse.processing.org/t/processing-4-core-maven-artifact/27334/13 "2022-12-19T14:38:41Z")

</div>

Thank you. My impression was that not only it needed Java 17, but Temurin was actually required. I might be wrong but I think it was crashing with other versions of 17 on that Mac.
