bytedeco / javacpp-presets

The missing Java distribution of native C++ libraries
Other
2.65k stars 736 forks source link

What gradle dependencies are needed #477

Closed phelgren closed 6 years ago

phelgren commented 6 years ago

I have some code here: https://github.com/phelgren/Transcode-video-and-audio-using-the-bytedeco-libs that I am currently running on RHEL5 (manually built and compiled) and on CentOS7 (build using Maven) . I am trying to get the code to run on Windows 10. Not much difference between the the Windows 10 and CentOS7 code except one is built with Maven and one uses Gradle. Both the CentOS7 and the Windows code is built in the same workspace in Eclipse on Windows 10. Both deploy to Tomcat (8.0) one as a war the other as an OSGI module. The Windows 10 runtime fails with a NoClassDefFoundError:

Exception in thread "Thread-52" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avformat$AVFormatContext at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:471) at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:465) at org.bsfinternational.media.process.MergeUsingFFMPEG.run(MergeUsingFFMPEG.java:266) at java.lang.Thread.run(Thread.java:748)

The Gradle dependencies look like this:

// https://mvnrepository.com/artifact/org.bytedeco.javacpp - STUFF compileInclude group: 'org.bytedeco', name: 'javacpp', version: '1.3.3' compileInclude group: 'org.bytedeco', name: 'javacv-platform', version: '1.3.3' compileInclude group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3' compileInclude group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.2.0-1.3' compileInclude group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg-platform', version: '3.2.1-1.3'

Not a whole lot different from the Maven POM entries:

org.bytedeco javacpp 1.3.3 provided
<!-- https://mvnrepository.com/artifact/org.bytedeco/javacv-platform -->
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.3.3</version>
    <scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/opencv/opencv -->
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>3.2.0-1.3</version>
    <scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.bytedeco/javacpp-presets -->
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp-presets</artifactId>
    <version>1.3</version>
    <type>pom</type>
</dependency>

<!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg -->
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>3.2.1-1.3</version>
    <scope>provided</scope>
</dependency>

 <dependency>
       <groupId>org.bytedeco.javacpp-presets</groupId>
       <artifactId>ffmpeg</artifactId>
        <version>3.2.1-1.3</version>
       <classifier>windows-x86_64</classifier>
       <scope>provided</scope>
   </dependency>

So, I don't see a whole lot different but I wonder is there is something I need to change to accommodate Windows vs Linux? I don't quite see what is missing that is causing the failure. Something simple (I hope)

saudet commented 6 years ago

What does the dependency tree look like?

phelgren commented 6 years ago

I'll admit I am a little new to the Maven/Gradle world. I that something I can view from withing Eclipse or do I need to run it at the command line...(did a couple of quick searches looking for a quick answer...)

phelgren commented 6 years ago

Got it:

Root project - MediaProcessing

archives - Configuration for archive artifacts. No dependencies

compile - Dependencies for source set 'main'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

compileClasspath - Compile classpath for source set 'main'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 +--- org.osgi:org.osgi.service.component.annotations:1.3.0 +--- org.bytedeco:javacpp:1.3.3 +--- org.bytedeco:javacv-platform:1.3.3 | +--- org.bytedeco:javacpp:1.3.3 | +--- org.bytedeco:javacv:1.3.3 | | +--- org.bytedeco:javacpp:1.3.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.1.0-1.3 -> 3.2.0-1.3 () | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.2.0-1.3 | | --- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 | | --- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () | +--- org.bytedeco.javacpp-presets:flycapture-platform:2.9.3.43-1.3 | | --- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 () | +--- org.bytedeco.javacpp-presets:libdc1394-platform:2.2.4-1.3 | | --- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect-platform:0.5.3-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect2-platform:0.2.0-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:librealsense-platform:1.9.6-1.3 | | --- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 () | +--- org.bytedeco.javacpp-presets:videoinput-platform:0.200-1.3 | | --- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 () | +--- org.bytedeco.javacpp-presets:artoolkitplus-platform:2.3.1-1.3 | | --- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 () | --- org.bytedeco.javacpp-presets:flandmark-platform:1.07-1.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.1.0-1.3 -> 3.2.0-1.3 () | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 (*) +--- com.liferay.portal:com.liferay.portal.kernel:2.0.0 +--- com.liferay.portal:com.liferay.util.bridges:2.0.0 +--- com.liferay.portal:com.liferay.util.taglib:2.0.0 +--- javax.portlet:portlet-api:2.0 +--- javax.servlet:javax.servlet-api:3.0.1 +--- jstl:jstl:1.2 +--- org.osgi:osgi.cmpn:6.0.0 --- org.apache.commons:commons-lang3:3.5

compileInclude - Additional dependencies to include in the final JAR. +--- org.bytedeco:javacpp:1.3.3 +--- org.bytedeco:javacv-platform:1.3.3 | +--- org.bytedeco:javacpp:1.3.3 | +--- org.bytedeco:javacv:1.3.3 | | +--- org.bytedeco:javacpp:1.3.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.1.0-1.3 -> 3.2.0-1.3 () | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.2.0-1.3 | | --- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 | | --- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () | +--- org.bytedeco.javacpp-presets:flycapture-platform:2.9.3.43-1.3 | | --- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 () | +--- org.bytedeco.javacpp-presets:libdc1394-platform:2.2.4-1.3 | | --- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect-platform:0.5.3-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect2-platform:0.2.0-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:librealsense-platform:1.9.6-1.3 | | --- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 () | +--- org.bytedeco.javacpp-presets:videoinput-platform:0.200-1.3 | | --- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 () | +--- org.bytedeco.javacpp-presets:artoolkitplus-platform:2.3.1-1.3 | | --- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 () | --- org.bytedeco.javacpp-presets:flandmark-platform:1.07-1.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.1.0-1.3 -> 3.2.0-1.3 () | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () --- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 (*)

compileOnly - Compile dependencies for source set 'main'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 +--- org.osgi:org.osgi.service.component.annotations:1.3.0 +--- org.bytedeco:javacpp:1.3.3 +--- org.bytedeco:javacv-platform:1.3.3 | +--- org.bytedeco:javacpp:1.3.3 | +--- org.bytedeco:javacv:1.3.3 | | +--- org.bytedeco:javacpp:1.3.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.1.0-1.3 -> 3.2.0-1.3 () | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.2.0-1.3 | | --- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 | | --- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () | +--- org.bytedeco.javacpp-presets:flycapture-platform:2.9.3.43-1.3 | | --- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 () | +--- org.bytedeco.javacpp-presets:libdc1394-platform:2.2.4-1.3 | | --- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect-platform:0.5.3-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect2-platform:0.2.0-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:librealsense-platform:1.9.6-1.3 | | --- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 () | +--- org.bytedeco.javacpp-presets:videoinput-platform:0.200-1.3 | | --- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 () | +--- org.bytedeco.javacpp-presets:artoolkitplus-platform:2.3.1-1.3 | | --- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 () | --- org.bytedeco.javacpp-presets:flandmark-platform:1.07-1.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.1.0-1.3 -> 3.2.0-1.3 () | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 (*) +--- com.liferay.portal:com.liferay.portal.kernel:2.0.0 +--- com.liferay.portal:com.liferay.util.bridges:2.0.0 +--- com.liferay.portal:com.liferay.util.taglib:2.0.0 +--- javax.portlet:portlet-api:2.0 +--- javax.servlet:javax.servlet-api:3.0.1 +--- jstl:jstl:1.2 +--- org.osgi:osgi.cmpn:6.0.0 --- org.apache.commons:commons-lang3:3.5

cssBuilder - Configures Liferay CSS Builder for this project. --- com.liferay:com.liferay.css.builder:1.0.25 +--- com.liferay:com.liferay.rtl.css:1.0.5 +--- com.liferay:com.liferay.sass.compiler.jni:2.0.5 | --- com.liferay:com.liferay.sass.compiler.api:2.0.0 +--- com.liferay:com.liferay.sass.compiler.ruby:2.0.3 | +--- com.liferay:com.liferay.sass.compiler.api:2.0.0 | --- org.jruby:jruby-complete:1.7.20 +--- org.apache.ant:ant:1.9.4 | --- org.apache.ant:ant-launcher:1.9.4 +--- org.codehaus.plexus:plexus-utils:3.0.15 +--- org.slf4j:slf4j-log4j12:1.7.2 | +--- org.slf4j:slf4j-api:1.7.2 | --- log4j:log4j:1.2.17 --- org.sonatype.plexus:plexus-build-api:0.0.7

default - Configuration for default artifacts. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

javadocFormatter - Configures Liferay Javadoc Formatter for this project. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 +--- org.osgi:org.osgi.service.component.annotations:1.3.0 --- com.liferay:com.liferay.javadoc.formatter:1.0.19 +--- com.thoughtworks.qdox:qdox:1.12.1 +--- dom4j:dom4j:1.6.1 +--- log4j:log4j:1.2.17 --- org.apache.ant:ant:1.9.4 --- org.apache.ant:ant-launcher:1.9.4

jsCompile - Configures additional JavaScript dependencies. No dependencies

jspC - Configures the classpath of the JSP compilation tasks. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 +--- org.osgi:org.osgi.service.component.annotations:1.3.0 +--- org.bytedeco:javacpp:1.3.3 +--- org.bytedeco:javacv-platform:1.3.3 | +--- org.bytedeco:javacpp:1.3.3 | +--- org.bytedeco:javacv:1.3.3 | | +--- org.bytedeco:javacpp:1.3.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | +--- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 | | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 | | +--- org.bytedeco.javacpp-presets:opencv:3.1.0-1.3 -> 3.2.0-1.3 () | | --- org.bytedeco:javacpp:1.3 -> 1.3.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.2.0-1.3 | | --- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 | | --- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () | +--- org.bytedeco.javacpp-presets:flycapture-platform:2.9.3.43-1.3 | | --- org.bytedeco.javacpp-presets:flycapture:2.9.3.43-1.3 () | +--- org.bytedeco.javacpp-presets:libdc1394-platform:2.2.4-1.3 | | --- org.bytedeco.javacpp-presets:libdc1394:2.2.4-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect-platform:0.5.3-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect:0.5.3-1.3 () | +--- org.bytedeco.javacpp-presets:libfreenect2-platform:0.2.0-1.3 | | --- org.bytedeco.javacpp-presets:libfreenect2:0.2.0-1.3 () | +--- org.bytedeco.javacpp-presets:librealsense-platform:1.9.6-1.3 | | --- org.bytedeco.javacpp-presets:librealsense:1.9.6-1.3 () | +--- org.bytedeco.javacpp-presets:videoinput-platform:0.200-1.3 | | --- org.bytedeco.javacpp-presets:videoinput:0.200-1.3 () | +--- org.bytedeco.javacpp-presets:artoolkitplus-platform:2.3.1-1.3 | | --- org.bytedeco.javacpp-presets:artoolkitplus:2.3.1-1.3 () | --- org.bytedeco.javacpp-presets:flandmark-platform:1.07-1.3 | +--- org.bytedeco.javacpp-presets:opencv-platform:3.1.0-1.3 -> 3.2.0-1.3 () | --- org.bytedeco.javacpp-presets:flandmark:1.07-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg:3.2.1-1.3 () +--- org.bytedeco.javacpp-presets:opencv:3.2.0-1.3 () +--- org.bytedeco.javacpp-presets:ffmpeg-platform:3.2.1-1.3 (*) +--- com.liferay.portal:com.liferay.portal.kernel:2.0.0 +--- com.liferay.portal:com.liferay.util.bridges:2.0.0 +--- com.liferay.portal:com.liferay.util.taglib:2.0.0 +--- javax.portlet:portlet-api:2.0 +--- javax.servlet:javax.servlet-api:3.0.1 +--- jstl:jstl:1.2 +--- org.osgi:osgi.cmpn:6.0.0 --- org.apache.commons:commons-lang3:3.5

jspCTool - Configures Liferay Jasper JspC for this project. +--- com.liferay:com.liferay.jasper.jspc:1.0.9 | +--- com.liferay:com.liferay.portal.servlet.jsp.compiler:1.0.5 | | +--- com.liferay:com.liferay.osgi.util:2.0.5 | | | --- org.osgi:org.osgi.core:5.0.0 | | +--- org.glassfish:javax.el:3.0.1-b05 -> 3.0.1-b08 | | +--- org.glassfish.web:javax.servlet.jsp.jstl:1.2.3 | | | --- javax.servlet.jsp.jstl:jstl-api:1.2 | | | +--- javax.servlet:servlet-api:2.5 | | | --- javax.servlet.jsp:jsp-api:2.1 | | +--- org.osgi:org.osgi.compendium:5.0.0 | | +--- com.liferay:javax.servlet.jsp:2.3.3-b02.LIFERAY-PATCHED-1 | | | +--- org.glassfish.web:javax.servlet.jsp:2.3.3-b02 | | | | +--- org.glassfish:javax.el:[3.0.1-b05,) -> 3.0.1-b08 | | | | --- javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b01 | | | +--- javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b01 | | | --- org.glassfish:javax.servlet:3.2-b06 | | --- org.glassfish:javax.servlet:3.2-b06 | --- org.apache.ant:ant:1.9.4 | --- org.apache.ant:ant-launcher:1.9.4 --- org.apache.ant:ant:1.9.4 (*)

langBuilder - Configures Liferay Lang Builder for this project. --- com.liferay:com.liferay.lang.builder:1.0.11 +--- com.memetix:microsoft-translator-java-api:0.6.2 | --- com.googlecode.json-simple:json-simple:1.1 --- log4j:log4j:1.2.17

portal - Configures the classpath from the local Liferay bundle. +--- com.liferay:net.sf.jargs:1.0 +--- com.thoughtworks.qdox:qdox:1.12.1 +--- javax.activation:activation:1.1 +--- javax.servlet:javax.servlet-api:3.0.1 --- javax.servlet.jsp:javax.servlet.jsp-api:2.3.1

portalCommonCSS - Configures com.liferay.frontend.css.common for compiling CSS files. --- com.liferay:com.liferay.frontend.css.common:2.0.0

portalToolsDeployer - Configures the Deployer tool for this project. +--- com.liferay:net.sf.jargs:1.0 +--- com.thoughtworks.qdox:qdox:1.12.1 +--- javax.activation:activation:1.1 +--- javax.servlet:javax.servlet-api:3.0.1 --- javax.servlet.jsp:javax.servlet.jsp-api:2.3.1

runtime - Runtime dependencies for source set 'main'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

sourceFormatter - Configures Liferay Source Formatter for this project. POM relocation to an other version number is not fully supported in Gradle : xml-apis:xml-apis:2.0.2 relocated to xml-apis:xml-apis:1.0.b2. Please update your dependency to directly use the correct version 'xml-apis:xml-apis:1.0.b2'. Resolution will only pick dependencies of the relocated element. Artifacts and other metadata will be ignored. --- com.liferay:com.liferay.source.formatter:1.0.374 +--- com.puppycrawl.tools:checkstyle:7.0 | +--- antlr:antlr:2.7.7 | +--- org.antlr:antlr4-runtime:4.5.3 | +--- commons-beanutils:commons-beanutils:1.9.2 | | --- commons-logging:commons-logging:1.1.1 -> 1.2 | +--- commons-collections:commons-collections:3.2.2 | +--- commons-cli:commons-cli:1.3.1 | --- com.google.guava:guava:19.0 +--- com.thoughtworks.qdox:qdox:1.12.1 +--- commons-io:commons-io:2.1 +--- commons-logging:commons-logging:1.2 +--- dom4j:dom4j:1.6.1 | --- xml-apis:xml-apis:1.0.b2 -> 2.0.2 +--- jaxen:jaxen:1.1.1 | +--- dom4j:dom4j:1.6.1 (*) | +--- jdom:jdom:1.0 | +--- xml-apis:xml-apis:1.3.02 -> 2.0.2 | +--- xerces:xercesImpl:2.6.2 | --- xom:xom:1.0 | +--- xerces:xmlParserAPIs:2.6.2 | +--- xerces:xercesImpl:2.6.2 | +--- xalan:xalan:2.6.0 | | --- xml-apis:xml-apis:2.0.2 | --- com.ibm.icu:icu4j:2.6.1 +--- junit:junit:4.12 | --- org.hamcrest:hamcrest-core:1.3 +--- org.apache.ant:ant:1.9.4 | --- org.apache.ant:ant-launcher:1.9.4 --- org.apache.maven:maven-artifact:3.3.9 +--- org.codehaus.plexus:plexus-utils:3.0.22 --- org.apache.commons:commons-lang3:3.4

soy - Configures Closure Templates for this project. --- com.google.template:soy:2015-04-10 +--- javax.inject:javax.inject:1 +--- com.google.inject:guice:3.0 | +--- javax.inject:javax.inject:1 | +--- aopalliance:aopalliance:1.0 | --- org.sonatype.sisu.inject:cglib:2.2.1-v20090111 | --- asm:asm:3.1 +--- com.google.inject.extensions:guice-assistedinject:3.0 | --- com.google.inject:guice:3.0 () +--- com.google.inject.extensions:guice-multibindings:3.0 | --- com.google.inject:guice:3.0 () +--- com.google.guava:guava:17.0 +--- org.ow2.asm:asm:5.0.3 +--- org.ow2.asm:asm-commons:5.0.3 | --- org.ow2.asm:asm-tree:5.0.3 | --- org.ow2.asm:asm:5.0.3 +--- org.ow2.asm:asm-util:5.0.3 | --- org.ow2.asm:asm-tree:5.0.3 () +--- org.ow2.asm:asm-analysis:5.0.3 | --- org.ow2.asm:asm-tree:5.0.3 () +--- com.ibm.icu:icu4j:51.1 +--- args4j:args4j:2.0.26 --- com.google.code.findbugs:jsr305:2.0.3

soyCompile - Configures additional Soy dependencies. No dependencies

testCompile - Dependencies for source set 'test'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testCompileClasspath - Compile classpath for source set 'test'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testCompileOnly - Compile dependencies for source set 'test'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testIntegrationCompile - Dependencies for source set 'test integration'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testIntegrationCompileClasspath - Compile classpath for source set 'test integration'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testIntegrationCompileOnly - Compile dependencies for source set 'test integration'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testIntegrationRuntime - Runtime dependencies for source set 'test integration'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

testRuntime - Runtime dependencies for source set 'test'. +--- log4j:log4j:1.2.17 +--- commons-fileupload:commons-fileupload:1.3.2 | --- commons-io:commons-io:2.2 --- org.osgi:org.osgi.service.component.annotations:1.3.0

tldFormatter - Configures Liferay TLD Formatter for this project. --- com.liferay:com.liferay.tld.formatter:1.0.2 +--- dom4j:dom4j:1.6.1 | --- xml-apis:xml-apis:1.0.b2 --- log4j:log4j:1.2.17

tlddoc - Configures Tag Library Documentation Generator for this project. --- taglibrarydoc:tlddoc:1.3

xmlFormatter - Configures Liferay XML Formatter for this project. --- com.liferay:com.liferay.xml.formatter:1.0.2 +--- dom4j:dom4j:1.6.1 | --- xml-apis:xml-apis:1.0.b2 --- log4j:log4j:1.2.17

saudet commented 6 years ago

So, it looks like your Gradle doesn't pick up any "windows-x86_64" artifacts in the dependencies for some reason. You'll need to fix that...

phelgren commented 6 years ago

Ok, Thanks. I'll dig a bit and see what I can find....

Should I use this:

compileInclude group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'windows-x86_64'

compileInclude group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.2.0-1.3', classifier: 'windows-x86_64'

Instead of: compileInclude group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3' compileInclude group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.2.0-1.3'

If so, should I specify the classifier: 'windows-x86_64' for any other dependencies?

saudet commented 6 years ago

Yes, that might work.

phelgren commented 6 years ago

That seems to have worked although I am not 100% confident..yet. I'll continue to experiment. I am concerned that I would need to change dependencies based on my deployment target (Windows vs Linux). I was hoping to be able to compile and deploy regardless of target OS. I may add the other references back in and see if the code continues to work so I can deploy without changing dependencies and re-deploying..

Thanks for weighing in.

saudet commented 6 years ago

That's what the "-platform" artifacts are for, please read the README.md file. If you need to have all this working like it should, you'll need to help me reproduce the issue. When I follow the instructions in the README.md file, everything works fine on my side.

phelgren commented 6 years ago

I get that...I just didn't know why it was wasn't working.....I reverted my changes back for Gradle, dropping the "classifier", What I suspected was that there was something not quite right with class loading or replacing the OSGI modules when I recompiled and redeployed. So I shutdown Tomcat, exited from Eclipse and sure that there was no JVM instances running and then restarted Eclipse, restarted Tomcat and re-deployed my module. It IS working as expected now. I don't know if the issue is with Eclipse, Tomcat or the Liferay framework these OSGI modules are compiled within but it isn't within presets.

Thanks for your patience with this. Many moving parts to sort through. All is well now.

saudet commented 6 years ago

Ok, good! BTW, with Tomcat, you also have to make sure to use the shared class loader for those: https://wiki.apache.org/tomcat/HowTo#I.27m_encountering_classloader_problems_when_using_JNI_under_Tomcat