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
- Travis CI at
- GitHub Actions at