Fork me on GitHub

Builds

We now have reliable automated builds using Travis CI (to cover testing of JavaCPP and JavaCV on ARM, POWER, and x86 architectures for all platforms) and GitHub Actions (providing Android, iOS, Linux, Mac OS X, and Windows builds for the JavaCPP Presets). Thanks to both initiatives for providing such a great service to open source projects! Every pull request is built for all targets, and each commit generates a new snapshot build.

Using Snapshot Builds

These builds can be used outside of the main release cycles to test latest features with only a few changes required to the build files to obtain the latest snapshot version from the snapshot repository.

Maven

Taking the sample usage for JavaCV, the dependency in the pom.xml file would change to this, followed by the additional repository settings:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.bytedeco.javacv</groupId>
    <artifactId>demo</artifactId>
    <version>1.5.12-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>1.5.12-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>sonatype-nexus-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </pluginRepository>
    </pluginRepositories>

    <!-- ... -->

</project>

It is also advisable to specify your platform with the javacpp.platform system property and use the --update-snapshots option, for example, mvn -Djavacpp.platform=linux-x86_64 --update-snapshots [...], as binaries for all platforms may not be available at all times.

Gradle

For Gradle, the equivalent would look like below in build.gradle (the one inside the app subdirectory for an Android project), as documented at Gradle - Declaring repositories:

repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}

dependencies {
    api 'org.bytedeco:javacv-platform:1.5.12-SNAPSHOT'
}

// ...

It is also recommended to use the platform plugin of Gradle JavaCPP as exemplified in the javacv-demo sample, as well as the --refresh-dependencies option, for example, gradle -PjavacppPlatform=macosx-x86_64 --refresh-dependencies [...], as binaries for all platforms may not be available at all times.

sbt

We can do similarly for sbt in build.sbt, as documented at sbt - Resolvers:

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

libraryDependencies += "org.bytedeco" % "javacv-platform" % "1.5.12-SNAPSHOT"

// ...

Along with either SBT-JavaCPP or SBT-JavaCV.

Other options

If your build tools are having issues downloading snapshot artifacts, the pom.xml file above can also be used to download snapshots for them. Simply save a dummy pom.xml file outside of any project context, run mvn -U compile on it, and the artifacts will get downloaded into ~/.m2/repository from which other tools can use them, for example, in the case of Gradle with repositories { mavenLocal() } or when using sbt with resolvers += Resolver.mavenLocal.

For convenience, we can browse and download JAR files manually as well from the snapshot repository:

Current Build Status

Builds information and history is available on