Minie 4.0

Version 4.0.0 of the Minie Physics Library was released today. It’s available from both GitHub and MavenCentral.

Since the JCenter repo will be de-comissioned in May, I haven’t uploaded it there. If your project uses JCenter, please begin transitioning to MavenCentral ASAP.

Minie 4.0 incorporates all changes to Native Bullet through 23 January. It also fixes a couple pesky bugs.

For more details, see the release page at GitHub. For even more details, see the release log.

14 Likes

Hi Stephen,

I hope this isn’t the wrong place to ask [1], but I’m currently trying to migrate my project (JME 3.3.2-stable) from JBullet to Minie, and I’m having trouble getting the Maven dependencies to work as I expect (maybe my expectations are wrong). I’ve removed all bullet and jbullet deps from my pom, and I have jme3-core and Minie (either 3.1.0 or 4.0.2 - both exhibit the problem).

My code uses com.jme3.bullet.collision.shapes.CollisionShape, which I assumed was transitively included by depending on Minie, but my build fails with the compilation error “package com.jme3.bullet does not exist”. Is there something else that I should be including in my dependencies to get this class/package into my classpath? (I removed all the bullet and jbullet dependencies as per the Minie documentation). I can see there are variants of Minie (bare, big3, dp) but none of these seem to help.

I’ve set up a test pom with minimum dependencies and one class that tries to import CollisionShape just to reduce the chances that it isn’t something else in my setup causing a conflict, with the same result.

	<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.codealchemists</groupId>
	<artifactId>minie-test</artifactId>
	<version>1.0-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>minie-test</name>

	<properties>
		<jme3.version>3.3.2-stable</jme3.version>
	</properties>


	<dependencies>
		<dependency>
			<groupId>org.jmonkeyengine</groupId>
			<artifactId>jme3-core</artifactId>
			<version>${jme3.version}</version>
		</dependency>

		<dependency>
			<groupId>com.github.stephengold</groupId>
			<artifactId>Minie</artifactId>
			<version>3.1.0</version>
			<!--<version>4.0.2</version>-->
			<type>pom</type>
		</dependency>

	</dependencies>

	<repositories>
		<repository>
			<id>mvnrepository</id>
			<url>https://repo1.maven.org/maven2/</url>
		</repository>
		<repository>
			?
			<id>jcenter</id>
			<url>https://jcenter.bintray.com</url>
		</repository>
	</repositories>
</project>

I’ve probably misunderstood something fundamental, but I guess there’s a chance that the Minie maven pom might be missing some dependency declaration. I’ve looked back at a few previous Minie poms though, and didn’t spot anything obvious.

Thanks for any pointers you can give,

Duncan.

[1] Just a thought, but perhaps the github docs could point people to a place to the preferred place to ask questions? (just to help future Minie-explorers)

1 Like

I read through your POM and didn’t see anything obviously wrong. (I’m a Gradle fanatic who rarely builds anything using Maven, so that’s not very significant.)

I’m curious about the “?” line just before “jcenter”. What’s that supposed to do? Have you tried removing it?

I hope someone with more Maven experience will help you debug your issue.

A few side issues:

  • The best place to get Minie support is the “User Code & Projects” category at the JME Forum, so you’ve come to the right place! However, I do prefer that people create new topics unless they are directly responding to a prior post.
  • com.jme3.bullet.collision.shapes.CollisionShape is part of Minie, not a transitive dependency. Every variant of Minie (including +bare, +big3, +dp) includes it.
  • The “github.io” documentation site has a link to the JME Forum, in the left sidebar. However, it doesn’t mention asking questions or getting support anywhere. I’ll add some helpful pointers to the “Project overview” page.
1 Like

I use maven daily and whenever there is a dependency clash of any kind, step one is always to run:
maven dependency:tree

…and trawl through the output looking for which version of what was picked up by which.

(An aside: I also wonder how anyone gets through a week of maven use without knowing about that command but I’ve also worked with experienced java devs who seem to not know it… so it was worth mentioning.)

Edit: changed “maven dependencies” to “maven depdency:tree” because I was getting gradle and maven confused for a second. Everyone should know “gradle dependencies” and “maven dependency:tree” because they will save you man-years of head scratching.

1 Like

Thanks for the replies - I’ve found it - it wasn’t the spurious ? character (although how that appeared is still a mystery).

My dependency on Minie has

<type>pom</type> 

which I copied from How to add Minie to an existing project :: The Minie project
… whereas if I remove that line, it brings in the default (JAR) dependency, which (of course) contains the code. Using dependency:tree (thanks for the reminder) it shows that the transitive dependencies of Minie were being correctly included with type JAR, but it was the dependency on Minie itself that had the wrong type.

All good now - I’ll raise a PR to fix the documentation shortly.

3 Likes

Merged! Thanks for the PR.

2 Likes