Hi,
as we are using karaf/osgi we created a wrapper for the project. This bundles
all modules for the s7 driver.
we init the driver with the following line, otherwise the driver is not found
plcConnection = new PlcDriverManager(S7PlcDriver.class.getClassLoader())
.getConnection(addressString);
<dependency>
<groupId>com.yyyy.orbit</groupId>
<artifactId>plc4j-all</artifactId>
</dependency>
<?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>
<parent>
<groupId>com.yyyy</groupId>
<artifactId>moap</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>com.yyyy.orbit</groupId>
<artifactId>plc4j-all</artifactId>
<version>0.3.0</version>
<packaging>bundle</packaging>
<name>Orbit :: PLC4J All</name>
<description>This OSGi bundle simply wraps the plc4j libs in version ${project.version}</description>
<dependencies>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-driver-s7</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-api</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-iso-tp</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-iso-on-tcp</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-driver-base</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-s7</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-driver-base-tcp</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-driver-s7</artifactId>
<version>0.3.0</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-api</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-iso-tp</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-iso-on-tcp</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-driver-base</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-s7</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-protocol-driver-base-tcp</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-sources</id>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeClassifiers>sources</includeClassifiers>
<outputDirectory>${project.build.directory}/sources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>source-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/sources.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<unpackBundle>false</unpackBundle>
<instructions>
<Bundle-Classpath>.</Bundle-Classpath>
<_exportcontents>
org.apache.plc4x.java.*
</_exportcontents>
<Import-Package>
!*,
javax.naming,
javax.security.cert,
javax.servlet,
javax.sql,
javax.xml.parsers,
javax.xml.transform,
javax.xml.transform.dom,
javax.xml.transform.stream,
org.apache.commons.logging,
org.apache.commons.logging.impl,
org.apache.log4j,
org.apache.logging.log4j,
org.slf4j,
org.slf4j.helpers
</Import-Package>
<Private-Package>
*;-split-package:=merge-first</Private-Package>
<Embed-Dependency>*;scope=runtime;inline=true</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<_removeheaders>
Ignore-Package,Include-Resource,Embed-Dependency,Embed-Transitive
</_removeheaders>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>