| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <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>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>29</version> |
| </parent> |
| |
| <groupId>org.apache.plc4x</groupId> |
| <artifactId>plc4x-parent</artifactId> |
| <version>0.11.0-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <name>PLC4X</name> |
| <description> |
| PLC4X is an effort to create a universal library for accessing industrial programmable logic controllers |
| using a variety of protocols using a uniform API. |
| </description> |
| <url>https://plc4x.apache.org</url> |
| <inceptionYear>2017</inceptionYear> |
| |
| <scm> |
| <connection>scm:git:https://gitbox.apache.org/repos/asf/plc4x.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/plc4x.git</developerConnection> |
| <url>https://github.com/apache/plc4x</url> |
| <tag>HEAD</tag> |
| </scm> |
| |
| <!-- Only configure the site distribution as the rest is handled by the apache parent --> |
| <distributionManagement> |
| <site> |
| <id>apache.website</id> |
| <url>scm:git:https://gitbox.apache.org/repos/asf/plc4x-website.git</url> |
| </site> |
| </distributionManagement> |
| |
| <issueManagement> |
| <system>Jira</system> |
| <url>https://issues.apache.org/jira/browse/PLC4X</url> |
| </issueManagement> |
| |
| <mailingLists> |
| <mailingList> |
| <name>Apache PLC4X Developer List</name> |
| <subscribe>mailto:dev-subscribe@plc4x.apache.org</subscribe> |
| <unsubscribe>mailto:dev-unsubscribe@plc4x.apache.org</unsubscribe> |
| <post>mailto:dev@plc4x.apache.org</post> |
| <archive>https://mail-archives.apache.org/mod_mbox/plc4x-dev/</archive> |
| </mailingList> |
| <mailingList> |
| <name>PLC4X Commits List</name> |
| <subscribe>mailto:commits-subscribe@plc4x.apache.org</subscribe> |
| <unsubscribe>mailto:commits-unsubscribe@plc4x.apache.org</unsubscribe> |
| <post>mailto:commits@plc4x.apache.org</post> |
| <archive>https://mail-archives.apache.org/mod_mbox/plc4x-commits/</archive> |
| </mailingList> |
| <mailingList> |
| <name>PLC4X Jira Notifications List</name> |
| <subscribe>mailto:issues-subscribe@plc4x.apache.org</subscribe> |
| <unsubscribe>mailto:issues-unsubscribe@plc4x.apache.org</unsubscribe> |
| <post>mailto:issues@plc4x.apache.org</post> |
| <archive>https://mail-archives.apache.org/mod_mbox/plc4x-issues/</archive> |
| </mailingList> |
| </mailingLists> |
| |
| <properties> |
| <java.version>11</java.version> |
| |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding> |
| |
| <!-- Timestamp for the reproducible builds --> |
| <project.build.outputTimestamp>1664467011</project.build.outputTimestamp> |
| |
| <!-- Exclude all generated code --> |
| <sonar.exclusions>**/generated-sources</sonar.exclusions> |
| <sonar.cfamily.build-wrapper-output>${project.basedir}/plc4c/target/build-wrapper-output</sonar.cfamily.build-wrapper-output> |
| |
| <plc4x-code-generation.version>1.7.0-SNAPSHOT</plc4x-code-generation.version> |
| |
| <antlr.version>4.13.0</antlr.version> |
| <apiguardian.version>1.1.2</apiguardian.version> |
| <assertj.version>3.24.2</assertj.version> |
| <awaitility.version>4.2.0</awaitility.version> |
| <!-- The currently available version is 2.0.5 and anything above 1.4.3 is no longer compatible with our code --> |
| <bit-io.version>1.4.3</bit-io.version> |
| <bouncycastle.version>1.70</bouncycastle.version> |
| <byte-buddy.version>1.14.4</byte-buddy.version> |
| <!-- Be sure to keep this version set to the version of the cmake-maven-plugin --> |
| <cmake-version>3.22.1</cmake-version> |
| <commons-beanutils.version>1.9.4</commons-beanutils.version> |
| <commons-cli.version>1.5.0</commons-cli.version> |
| <commons-codec.version>1.15</commons-codec.version> |
| <commons-collections4.version>4.4</commons-collections4.version> |
| <commons-compress.version>1.23.0</commons-compress.version> |
| <commons-configuration2.version>2.9.0</commons-configuration2.version> |
| <commons-io.version>2.11.0</commons-io.version> |
| <commons-lang3.version>3.12.0</commons-lang3.version> |
| <commons-logging.version>1.2</commons-logging.version> |
| <commons-math3.version>3.6.1</commons-math3.version> |
| <commons-net.version>3.9.0</commons-net.version> |
| <commons-pool2.version>2.11.1</commons-pool2.version> |
| <commons-text.version>1.10.0</commons-text.version> |
| <commons-csv.version>1.10.0</commons-csv.version> |
| <dom4j.version>2.1.4</dom4j.version> |
| <equalsverifier.version>3.14.2</equalsverifier.version> |
| <freemarker.version>2.3.32</freemarker.version> |
| <groovy.version>4.0.12</groovy.version> |
| <gson.version>2.10.1</gson.version> |
| <guava.version>32.0.0-jre</guava.version> |
| <hamcrest.version>2.2</hamcrest.version> |
| <httpclient.version>4.5.14</httpclient.version> |
| <httpcore.version>4.4.16</httpcore.version> |
| <jackson.version>2.15.2</jackson.version> |
| <woodstox-core.version>6.5.1</woodstox-core.version> |
| <!-- When updating this to the latest version, we're getting errors in the opcua server tests --> |
| <jaxb.version>4.0.2</jaxb.version> |
| <jetty-util.version>11.0.15</jetty-util.version> |
| <jna.version>5.13.0</jna.version> |
| <joda-time.version>2.12.5</joda-time.version> |
| <jserialcom.version>2.9.3</jserialcom.version> |
| <junit.jupiter.version>5.9.3</junit.jupiter.version> |
| <junit.platform.version>1.8.2</junit.platform.version> |
| <logback.version>1.4.7</logback.version> |
| <maven.clean.plugin.version>3.2.0</maven.clean.plugin.version> |
| <!-- version 0.6.7 is newer, however the ExampleServer doesn't seem to run with that --> |
| <!-- version 0.6.8 is being released, however the milo-examples artifact is not available yet --> |
| <milo.version>0.6.9</milo.version> |
| <mockito.version>5.3.1</mockito.version> |
| <netty.version>4.1.93.Final</netty.version> |
| <pcap4j.version>1.8.2</pcap4j.version> |
| <slf4j.version>2.0.7</slf4j.version> |
| <vavr.version>0.10.4</vavr.version> |
| <xmlunit.version>2.9.1</xmlunit.version> |
| |
| <!-- Site properties --> |
| <asciidoctor.maven.plugin.version>2.2.4</asciidoctor.maven.plugin.version> |
| <asciidoctorj.version>2.5.9</asciidoctorj.version> |
| <asciidoctorj.diagram.version>2.2.8</asciidoctorj.diagram.version> |
| |
| <skip-code-generation-tests>true</skip-code-generation-tests> |
| <enable-all-tests>false</enable-all-tests> |
| <excluded-test-groups>require-all-tests</excluded-test-groups> |
| <reflow.skin.version>2.3.3</reflow.skin.version> |
| </properties> |
| |
| <modules> |
| <module>code-generation</module> |
| |
| <!-- Definition of the protocol message formats --> |
| <module>protocols</module> |
| |
| <!-- Build the Java part of plc4x --> |
| <module>plc4j</module> |
| </modules> |
| |
| <dependencyManagement> |
| <dependencies> |
| <!--- Code-Generation related --> |
| <dependency> |
| <groupId>org.apache.plc4x.plugins</groupId> |
| <artifactId>plc4x-code-generation-types-base</artifactId> |
| <version>${plc4x-code-generation.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.plc4x.plugins</groupId> |
| <artifactId>plc4x-code-generation-language-base</artifactId> |
| <version>${plc4x-code-generation.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.plc4x.plugins</groupId> |
| <artifactId>plc4x-code-generation-protocol-base</artifactId> |
| <version>${plc4x-code-generation.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-runtime</artifactId> |
| <version>${antlr.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.freemarker</groupId> |
| <artifactId>freemarker</artifactId> |
| <version>${freemarker.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>osgi.core</artifactId> |
| <version>8.0.0</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-bom</artifactId> |
| <version>${netty.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>commons-beanutils</groupId> |
| <artifactId>commons-beanutils</artifactId> |
| <version>${commons-beanutils.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-cli</groupId> |
| <artifactId>commons-cli</artifactId> |
| <version>${commons-cli.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| <version>${commons-codec.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-collections4</artifactId> |
| <version>${commons-collections4.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| <version>${commons-compress.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-configuration2</artifactId> |
| <version>${commons-configuration2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${commons-io.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <version>${commons-lang3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-math3</artifactId> |
| <version>${commons-math3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-net</groupId> |
| <artifactId>commons-net</artifactId> |
| <version>${commons-net.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-pool2</artifactId> |
| <version>${commons-pool2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-text</artifactId> |
| <version>${commons-text.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-csv</artifactId> |
| <version>${commons-csv.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| <version>${gson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.googlejavaformat</groupId> |
| <artifactId>google-java-format</artifactId> |
| <version>1.17.0</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.awaitility</groupId> |
| <artifactId>awaitility</artifactId> |
| <version>${awaitility.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| <version>${joda-time.version}</version> |
| </dependency> |
| |
| <!-- For Either types ... --> |
| <dependency> |
| <groupId>io.vavr</groupId> |
| <artifactId>vavr</artifactId> |
| <version>${vavr.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.github.jinahya</groupId> |
| <artifactId>bit-io</artifactId> |
| <version>${bit-io.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| <version>${httpclient.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpcore</artifactId> |
| <version>${httpcore.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.pcap4j</groupId> |
| <artifactId>pcap4j-core</artifactId> |
| <version>${pcap4j.version}</version> |
| <!-- Commented out, if there are problems occurring to this, we need to comment it back in. --> |
| <!--scope>provided</scope--> |
| </dependency> |
| <dependency> |
| <groupId>org.pcap4j</groupId> |
| <artifactId>pcap4j-packetfactory-static</artifactId> |
| <version>${pcap4j.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-artifact</artifactId> |
| <version>${maven.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-utils</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <dependency> |
| <groupId>net.objecthunter</groupId> |
| <artifactId>exp4j</artifactId> |
| <version>0.4.8</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.github.purejavacomm</groupId> |
| <artifactId>purejavacomm</artifactId> |
| <version>1.0.2.RELEASE</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.fasterxml.woodstox</groupId> |
| <artifactId>woodstox-core</artifactId> |
| <version>${woodstox-core.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-core</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-xml</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-yaml</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.dom4j</groupId> |
| <artifactId>dom4j</artifactId> |
| <version>${dom4j.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>net.bytebuddy</groupId> |
| <artifactId>byte-buddy</artifactId> |
| <version>${byte-buddy.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>net.lingala.zip4j</groupId> |
| <artifactId>zip4j</artifactId> |
| <version>2.11.5</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.fazecast</groupId> |
| <artifactId>jSerialComm</artifactId> |
| <version>${jserialcom.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-api</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-params</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| |
| |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>log4j-over-slf4j</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <version>${logback.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| <version>${logback.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcmail-jdk15on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcpkix-jdk15on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcprov-jdk15on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-util</artifactId> |
| <version>${jetty-util.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>sdk-server</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>sdk-core</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>stack-core</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>stack-server</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>stack-client</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.milo</groupId> |
| <artifactId>dictionary-manager</artifactId> |
| <version>${milo.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest</artifactId> |
| <version>${hamcrest.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-core</artifactId> |
| <version>${hamcrest.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-library</artifactId> |
| <version>${hamcrest.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>${mockito.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <version>${mockito.version}</version> |
| </dependency> |
| |
| <!-- TODO: Eliminate the usage of AssertJ (OPM and OPC-UA Driver) --> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <version>${assertj.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>nl.jqno.equalsverifier</groupId> |
| <artifactId>equalsverifier</artifactId> |
| <version>${equalsverifier.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.groovy</groupId> |
| <artifactId>groovy-test-junit5</artifactId> |
| <version>${groovy.version}</version> |
| <!-- Ensure we only use this in test --> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.json</groupId> |
| <artifactId>json</artifactId> |
| <version>20230227</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.xmlunit</groupId> |
| <artifactId>xmlunit-core</artifactId> |
| <version>${xmlunit.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.xmlunit</groupId> |
| <artifactId>xmlunit-matchers</artifactId> |
| <version>${xmlunit.version}</version> |
| </dependency> |
| |
| <!-- TODO: There's also 3.2.2, but the javacan dependency only seem to be poms with stuff in core and epoll sub-modules --> |
| <dependency> |
| <groupId>tel.schich</groupId> |
| <artifactId>javacan-core</artifactId> |
| <version>3.2.3</version> |
| </dependency> |
| |
| <!-- ***************************************************************************** |
| ********************************************************************************** |
| ** Transitive dependencies ** |
| ** ** |
| ** These updates are reported by the dependency-checker as requiring management ** |
| ** When bumping versions of the above artifacts ideally comment out all ** |
| ** artifacts in below section and manage them as suggested by the dependency ** |
| ** plugin. ** |
| ********************************************************************************** |
| ****************************************************************************** --> |
| |
| <dependency> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| <version>${commons-logging.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>${guava.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>net.java.dev.jna</groupId> |
| <artifactId>jna</artifactId> |
| <version>${jna.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apiguardian</groupId> |
| <artifactId>apiguardian-api</artifactId> |
| <version>${apiguardian.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>jakarta.activation</groupId> |
| <artifactId>jakarta.activation-api</artifactId> |
| <version>2.1.2</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.yaml</groupId> |
| <artifactId>snakeyaml</artifactId> |
| <version>2.0</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <plugins> |
| <!-- Make some additional properties available to simplify keeping some content up to date --> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <inherited>false</inherited> |
| <executions> |
| <!-- Do some pre-build checks and report any findings to the user --> |
| <execution> |
| <id>prerequisite-check</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <inherited>false</inherited> |
| <configuration> |
| <source>${project.basedir}/src/main/script/prerequisiteCheck.groovy</source> |
| </configuration> |
| </execution> |
| <!-- |
| Set some dynamic variables which are useful for the site generation and |
| generate an 'pom.adoc' file containing them in a format asciidoc can use. |
| --> |
| <execution> |
| <id>provide-custom-properties</id> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <source>${project.basedir}/src/main/script/preSiteGeneration.groovy</source> |
| </configuration> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| <version>${joda-time.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.groovy</groupId> |
| <artifactId>groovy</artifactId> |
| <version>${groovy.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.pcap4j</groupId> |
| <artifactId>pcap4j-core</artifactId> |
| <version>${pcap4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.pcap4j</groupId> |
| <artifactId>pcap4j-packetfactory-static</artifactId> |
| <version>${pcap4j.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <!-- Check if all source files have the required apache license headers --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>license-check</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <useMavenDefaultExcludes>true</useMavenDefaultExcludes> |
| <excludes> |
| <!-- Git related files --> |
| <exclude>**/.git/**</exclude> |
| <exclude>**/.gitignore</exclude> |
| <exclude>**/cmake-*/**</exclude> |
| <exclude>**/.lock/**</exclude> |
| |
| <!-- License Files for other licenses --> |
| <exclude>**/UNLICENSE</exclude> |
| <exclude>**/CHANGELOG.md</exclude> |
| <exclude>**/EPL-2.0</exclude> |
| |
| <!-- |
| Files licensed under other compatible licenses. |
| --> |
| <exclude>**/Expression.g4</exclude> |
| |
| <!-- Maven related files --> |
| <exclude>**/target/**</exclude> |
| <exclude>target/**</exclude> |
| |
| <!-- Python related files --> |
| <exclude>**/.pytest_cache/**</exclude> |
| <exclude>**/.mypy_cache/**</exclude> |
| <exclude>**/Pipfile</exclude> |
| <exclude>**/Pipfile.lock</exclude> |
| |
| <!-- Eclipse related files --> |
| <exclude>**/.project</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.classpath</exclude> |
| <exclude>**/.factorypath</exclude> |
| |
| <!-- IntelliJ related files --> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| <exclude>**/.attach_pid*</exclude> |
| |
| <!-- Wireshark Captures --> |
| <exclude>**/*.pcap</exclude> |
| <exclude>**/*.pcapng</exclude> |
| |
| <!-- JEVN local version files --> |
| <exclude>**/.java-version</exclude> |
| |
| <!-- ASCIIdoctor generated files --> |
| <exclude>**/.asciidoctor/**</exclude> |
| |
| <!-- Jenkins build related files --> |
| <exclude>.repository/**</exclude> |
| <exclude>local-snapshots-dir/**</exclude> |
| |
| <!-- Data files created by examples running an embedded elasticsearch --> |
| <exclude>elasticsearch-data/**</exclude> |
| |
| <!-- JSON doesn't like comments --> |
| <exclude>**/*.json</exclude> |
| <exclude>**/*.avsc</exclude> |
| |
| <!-- Output of the profiler maven extension --> |
| <exclude>**/.profiler/**</exclude> |
| |
| <!-- CLion stuff (C++ IDE) --> |
| <exclude>**/cmake-build-debug/**</exclude> |
| <exclude>**/*.make</exclude> |
| <exclude>**/*.cmake</exclude> |
| <exclude>**/*.internal</exclude> |
| <exclude>**/link.txt</exclude> |
| <!-- Not sure why I can't exclude all Makefile's from just the plc4c directory --> |
| <!-- exclude>**/Makefile</exclude --> |
| <exclude>**/Makefile</exclude> |
| <exclude>**/*.includecache</exclude> |
| <exclude>**/CMakeFiles/**</exclude> |
| <exclude>**/CMakeCache.txt</exclude> |
| <exclude>**/DartConfiguration.tcl</exclude> |
| |
| <!-- .Net stuff --> |
| <exclude>plc4net/plc4net.sln.DotSettings.user</exclude> |
| |
| <!-- Stuff created during a plc4net build --> |
| <exclude>**/obj/**</exclude> |
| |
| <!-- Temporarily exclude generated code from thrift in python modules --> |
| <!--exclude>generated/**</exclude--> |
| <!-- Temporary Python files --> |
| <exclude>**/.eggs/**</exclude> |
| <exclude>**/plc4py.egg-info/**</exclude> |
| |
| <!-- Temporary Python virtualenv files--> |
| <exclude>**/venv/**</exclude> |
| |
| <!-- Temporary pytest and mypy folders --> |
| <exclude>**/.mypy_cache/**</exclude> |
| <exclude>**/.pytest_cache/**</exclude> |
| |
| <!-- Exclude a temp file needed by Docker --> |
| <exclude>project_version</exclude> |
| |
| <!-- Exclude files generated by the go build system --> |
| <exclude>**/go.sum</exclude> |
| |
| <exclude>.mvn/**</exclude> |
| |
| <!-- Exclude core dumps--> |
| <exclude>**/hs_err_pid*</exclude> |
| <exclude>**/replay_pid*</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <!-- |
| The failsafe plugin would use the java jigsaw module path, |
| this would make loading the test XML files impossible. |
| So we simply disable this. |
| --> |
| <useModulePath>false</useModulePath> |
| </configuration> |
| </plugin> |
| |
| <!-- Generate the legally required text files in the jars --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>process-resource-bundles</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} --> |
| <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle> |
| </resourceBundles> |
| <!-- Content in this directory will be appended to generated resources --> |
| <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <!-- Some of our plugins require certain minimum Maven versions --> |
| <execution> |
| <id>enforce-minimum-maven-version</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireMavenVersion> |
| <version>[3.6.3,)</version> |
| </requireMavenVersion> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| <!-- Ensure we're not mixing dependency versions --> |
| <execution> |
| <id>enforce-version-convergence</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <dependencyConvergence /> |
| </rules> |
| </configuration> |
| </execution> |
| <!-- |
| Fails the build if classes are included from multiple |
| artifacts and these are not identical. |
| --> |
| <execution> |
| <id>enforce-ban-duplicate-classes</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <banDuplicateClasses> |
| <scopes> |
| <scope>compile</scope> |
| <scope>provided</scope> |
| </scopes> |
| <findAllDuplicates>true</findAllDuplicates> |
| <ignoreWhenIdentical>true</ignoreWhenIdentical> |
| </banDuplicateClasses> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>extra-enforcer-rules</artifactId> |
| <version>1.7.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.shared</groupId> |
| <artifactId>maven-dependency-tree</artifactId> |
| <version>3.2.1</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <!-- |
| =================================== |
| == == |
| == SITE GENERATION PLUGINS == |
| == == |
| =================================== |
| |
| Starting here the following plugins are used for generating the projects website. |
| |
| --> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-site-resources</id> |
| <!-- Only execute this for the parent module --> |
| <inherited>false</inherited> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.build.directory}/site</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/src/site/resources-filtered</directory> |
| <filtering>true</filtering> |
| <targetPath>${project.build.directory}/site</targetPath> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| <!-- |
| Copy the schemas that might be distributed throughout the codebase to a central "schemas" |
| directory so IDEs can automatically pull them in. |
| --> |
| <execution> |
| <id>copy-schemas</id> |
| <!-- Only execute this for the parent module --> |
| <inherited>false</inherited> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.build.directory}/site</outputDirectory> |
| <resources> |
| <!-- Copy the resources for the test-suites --> |
| <resource> |
| <directory>${project.basedir}/plc4j/utils/test-utils/src/main/resources/schemas</directory> |
| <targetPath>${project.build.directory}/site/schemas</targetPath> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| Make the maven-site-plugin stage the output in the "asf-site" branch |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-scm-publish-plugin</artifactId> |
| <configuration> |
| <!-- mono-module doesn't require site:stage --> |
| <content>${project.build.directory}/staging</content> |
| <!-- branch where to deploy --> |
| <scmBranch>asf-site</scmBranch> |
| </configuration> |
| </plugin> |
| </plugins> |
| |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <version>0.15</version> |
| <configuration> |
| <!-- |
| Make rat output the files with missing licensed directly into the |
| build output (This way we don't have to look into the rat.txt to find |
| out which ones) |
| --> |
| <consoleOutput>true</consoleOutput> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>properties-maven-plugin</artifactId> |
| <version>1.1.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-maven-plugin</artifactId> |
| <version>${antlr.version}</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.plc4x.plugins</groupId> |
| <artifactId>plc4x-maven-plugin</artifactId> |
| <version>${plc4x-code-generation.version}</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>buildnumber-maven-plugin</artifactId> |
| <version>3.1.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <version>2.1.1</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>3.3.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <version>5.1.8</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.karaf.tooling</groupId> |
| <artifactId>karaf-maven-plugin</artifactId> |
| <version>4.4.3</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.google.code.maven-replacer-plugin</groupId> |
| <artifactId>replacer</artifactId> |
| <version>1.5.3</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>3.3.1</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <version>3.0.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.googlecode.maven-download-plugin</groupId> |
| <artifactId>download-maven-plugin</artifactId> |
| <version>1.6.8</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.8.10</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.11.0</version> |
| <configuration> |
| <!-- |
| Use the eclipse compiler instead of the normal jdk one, as we were seeing |
| problems on the CI server when compiling the BACnet java driver. |
| --> |
| <compilerId>eclipse</compilerId> |
| <release>${java.version}</release> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-compiler-api</artifactId> |
| <version>2.13.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-compiler-eclipse</artifactId> |
| <version>2.13.0</version> |
| </dependency> |
| <!-- Redundant import, however we might need to bump this version more often --> |
| <dependency> |
| <groupId>org.eclipse.jdt</groupId> |
| <artifactId>ecj</artifactId> |
| <version>3.32.0</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>3.1.0</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <excludedGroups>${excluded-test-groups}</excludedGroups> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>3.1.0</version> |
| <!--version>2.22.2</version--> |
| <dependencies> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit.jupiter.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>3.3.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>3.2.1</version> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <version>3.5.0</version> |
| <configuration> |
| <finalName>apache-plc4x-${project.version}</finalName> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <!-- It seems that when going to 3.3.0 the apache-rat-plugin fails when the shade plugin is also being run --> |
| <version>3.2.4</version> |
| <configuration> |
| <outputFile>${project.build.directory}/${project.artifactId}-${project.version}-uber-jar.${project.packaging}</outputFile> |
| <transformers> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> |
| </transformers> |
| <filters> |
| <filter> |
| <!-- |
| These files contain signatures for classes, omit them as in |
| shaded archives this has cause quite some problems in the past. |
| --> |
| <artifact>*:*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> |
| </configuration> |
| </plugin> |
| |
| <!-- Configure the Site generation --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <!-- If we go to version 4.0.0-M3, we get doxia errors --> |
| <version>3.12.1</version> |
| <configuration> |
| <!--templateFile>${session.executionRootDirectory}/src/site/template/site.vm</templateFile--> |
| <generateReports>true</generateReports> |
| <generateSitemap>true</generateSitemap> |
| <relativizeDecorationLinks>false</relativizeDecorationLinks> |
| <locales>en</locales> |
| <inputEncoding>${project.build.sourceEncoding}</inputEncoding> |
| <outputEncoding>${project.reporting.outputencoding}</outputEncoding> |
| <!-- |
| IntelliJ can't find the asciidoc config option in the site plugin, which is correct. |
| However, this config section is used by the asciidoctor site plugin extension. So please |
| ignore this error, it's actually ok. |
| --> |
| <asciidoc> |
| <attributes> |
| <source-highlighter>prettify</source-highlighter> |
| <imagesoutdir>${project.build.directory}/site/images</imagesoutdir> |
| <pom-adoc>${project.build.directory}/pom.adoc</pom-adoc> |
| </attributes> |
| <requires> |
| <require>asciidoctor-diagram</require> |
| </requires> |
| </asciidoc> |
| </configuration> |
| <dependencies> |
| <!-- Add support for asciidoctor --> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctor-maven-plugin</artifactId> |
| <version>${asciidoctor.maven.plugin.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctorj</artifactId> |
| <version>${asciidoctorj.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctorj-diagram</artifactId> |
| <version>${asciidoctorj.diagram.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>3.5.0</version> |
| <configuration> |
| <!-- |
| This will suppress the generation of a hidden timestamp at the top of each generated html page |
| and hopefully let the site generation nod to too big updates every time. |
| --> |
| <notimestamp>true</notimestamp> |
| <!-- |
| Set the source level to 8 as otherwise with newer JDKs we're getting trouble. |
| --> |
| <source>8</source> |
| <!-- |
| Disable the detection of links as we have some artifacts without api-docs and |
| the errors were polluting the build output. |
| --> |
| <detectLinks>false</detectLinks> |
| <validateLinks>false</validateLinks> |
| <failOnWarnings>false</failOnWarnings> |
| <failOnError>false</failOnError> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-changelog-plugin</artifactId> |
| <version>2.3</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>3.1.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.4.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.googlecode.cmake-maven-project</groupId> |
| <artifactId>cmake-maven-plugin</artifactId> |
| <version>3.23.2-b1</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-release-plugin</artifactId> |
| <version>3.0.0</version> |
| <configuration> |
| <!-- Tell the plugin to always release all modules using the same version --> |
| <autoVersionSubmodules>true</autoVersionSubmodules> |
| <releaseProfiles>apache-release</releaseProfiles> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>3.9.1.2184</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <!-- |
| TODO: somehow the newer version (checked till 3.3.0) is broken as it reports dependencies which are compile in fact |
| e.g. plc4j-connection-pool: |
| [INFO] - maven-dependency-plugin:3.2.0:analyze-only (check-dependencies) @ plc4j-connection-pool - |
| [WARNING] Non-test scoped test only dependencies found: |
| [WARNING] org.apache.commons:commons-pool2:jar:2.11.1:compile |
| [WARNING] org.apache.plc4x:plc4j-api:jar:0.11.0-SNAPSHOT:compile |
| --> |
| <version>3.1.2</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <reporting> |
| <plugins> |
| <!-- Generate the unit- and integration-test reports --> |
| <!--plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-report-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>report-only</report> |
| <report>failsafe-report-only</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin--> |
| |
| <!-- Generate a code coverage report --> |
| <!--plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>report</report> |
| <report>report-integration</report> |
| </reports> |
| </reportSet> |
| <reportSet> |
| <id>aggregate</id> |
| <inherited>false</inherited> |
| <reports> |
| <report>report-aggregate</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin--> |
| |
| <!-- Add html friendly version of source files with line-numbers --> |
| <!--plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jxr-plugin</artifactId> |
| <version>3.0.0</version> |
| </plugin--> |
| |
| <!-- Generate javadoc documentation --> |
| <!--plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>javadoc-no-fork</report> |
| <report>test-javadoc-no-fork</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| <configuration> |
| <failOnError>true</failOnError> |
| </configuration> |
| </plugin--> |
| |
| <!-- Generates a changelog report from GIT commits --> |
| <!--plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-changelog-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>changelog</report> |
| <report>file-activity</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| <configuration> |
| <!- Automatically link Jira issues -> |
| <issueLinkUrl>https://issues.apache.org/jira/browse/%ISSUE%</issueLinkUrl> |
| </configuration> |
| </plugin--> |
| </plugins> |
| </reporting> |
| |
| <!-- Make Snapshots of Apache projects available --> |
| <repositories> |
| <repository> |
| <id>apache-snapshots</id> |
| <url>https://repository.apache.org/content/repositories/snapshots</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </repository> |
| <!-- When we release stuff like the site skin or the build tools, syncing to Maven Central usually takes some time --> |
| <repository> |
| <id>apache-releases</id> |
| <url>https://repository.apache.org/content/repositories/releases</url> |
| <releases> |
| <enabled>true</enabled> |
| </releases> |
| <snapshots> |
| <enabled>false</enabled> |
| </snapshots> |
| </repository> |
| </repositories> |
| |
| <!-- Make Snapshots of Apache plugins available --> |
| <pluginRepositories> |
| <pluginRepository> |
| <id>apache-snapshots</id> |
| <url>https://repository.apache.org/content/repositories/snapshots</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </pluginRepository> |
| <!-- When we release stuff like the site skin or the build tools, syncing to Maven Central usually takes some time --> |
| <pluginRepository> |
| <id>apache-releases</id> |
| <url>https://repository.apache.org/content/repositories/releases</url> |
| <releases> |
| <enabled>true</enabled> |
| </releases> |
| <snapshots> |
| <enabled>false</enabled> |
| </snapshots> |
| </pluginRepository> |
| </pluginRepositories> |
| |
| <profiles> |
| <!-- Allows skipping of the pre-flight-check as needed when deploying on jenkins --> |
| <profile> |
| <id>skip-prerequisite-check</id> |
| <activation> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Make some additional properties available to simplify keeping some content up to date --> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <version>2.1.1</version> |
| <executions> |
| <!-- Do some pre-build checks and report any findings to the user --> |
| <execution> |
| <id>prerequisite-check</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <inherited>false</inherited> |
| <configuration> |
| <source> |
| print "\nSkipping prerequisite-check\n\n" |
| </source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- Build PLC4X including the C modules --> |
| <profile> |
| <id>with-c</id> |
| <modules> |
| <module>plc4c</module> |
| </modules> |
| </profile> |
| |
| <!-- Build PLC4X including the Go modules --> |
| <profile> |
| <id>with-go</id> |
| <modules> |
| <module>plc4go</module> |
| </modules> |
| </profile> |
| |
| <!-- Build PLC4X including the .Net modules --> |
| <profile> |
| <id>with-dotnet</id> |
| <modules> |
| <module>plc4net</module> |
| </modules> |
| </profile> |
| |
| <!-- Build PLC4X including the Sandbox modules --> |
| <profile> |
| <id>with-sandbox</id> |
| <modules> |
| <module>sandbox</module> |
| </modules> |
| </profile> |
| |
| <!-- Profile for linux amd64 (Self-Enabling) --> |
| <profile> |
| <id>os-unix-amd64</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| <arch>amd64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>linux</os.suffix> |
| <os.classifier>linux-x86_64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-linux-x86_64.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-linux-x86_64/bin/</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>linux</javafx.platform> |
| </properties> |
| </profile> |
| <!-- Profile for linux x86_64 (Self-Enabling) --> |
| <profile> |
| <id>os-unix-x86_64</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| <arch>x86_64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>linux</os.suffix> |
| <os.classifier>linux-x86_64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-linux-x86_64.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-linux-x86_64/bin/</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>linux</javafx.platform> |
| </properties> |
| </profile> |
| <!-- Profile for linux aarch64 (Self-Enabling) --> |
| <profile> |
| <id>os-unix-aarch64</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>linux</os.suffix> |
| <os.classifier>linux-${os.arch}</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-linux-${os.arch}.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-linux-${os.arch}/bin/</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>linux-aarch64</javafx.platform> |
| </properties> |
| </profile> |
| <!-- Profile for mac amd64 (Self-Enabling) --> |
| <profile> |
| <id>os-mac-amd64</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>amd64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>mac</os.suffix> |
| <os.classifier>mac-x86_64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-macos-universal.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-macos-universal/CMake.app/Contents/bin</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>mac</javafx.platform> |
| </properties> |
| </profile> |
| <!-- Profile for mac x86_64 (Self-Enabling) --> |
| <profile> |
| <id>os-mac-x86_64</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>x86_64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>mac</os.suffix> |
| <os.classifier>mac-x86_64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-macos-universal.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-macos-universal/CMake.app/Contents/bin</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>mac</javafx.platform> |
| </properties> |
| </profile> |
| <!-- Profile for mac (Self-Enabling) --> |
| <profile> |
| <id>os-mac-aarch64</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>mac</os.suffix> |
| <os.classifier>mac-aarch64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-macos-universal.tar.gz</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-macos-universal/CMake.app/Contents/bin</cmake.root> |
| <cmake.generator>Unix Makefiles</cmake.generator> |
| <python.venv.bin>venv/bin/</python.venv.bin> |
| <python.exe.bin>python3</python.exe.bin> |
| <javafx.platform>mac-aarch64</javafx.platform> |
| </properties> |
| </profile> |
| <!-- profile for windows (Self-Enabling) --> |
| <profile> |
| <id>os-windows</id> |
| <activation> |
| <os> |
| <family>windows</family> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>win</os.suffix> |
| <os.classifier>windows-x86_64</os.classifier> |
| <cmake.url>https://github.com/Kitware/CMake/releases/download/v${cmake-version}/cmake-${cmake-version}-windows-x86_64.zip</cmake.url> |
| <cmake.root>${project.build.directory}/cmake-${cmake-version}-windows-x86_64/bin</cmake.root> |
| <cmake.generator>MinGW Makefiles</cmake.generator> |
| <python.venv.bin>venv/Scripts/</python.venv.bin> |
| <python.exe.bin>python</python.exe.bin> |
| <javafx.platform>win-x86</javafx.platform> |
| </properties> |
| </profile> |
| |
| <!-- |
| This profile is intended to help when having problems with Maven. |
| When enabled, it automatically generates an "effective.pom" in the target directory. |
| This version is the fully expanded version where all inherited configuration is in |
| place and all variables are resolved and profile configuration is included. |
| --> |
| <profile> |
| <id>debug-pom</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-help-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>generate-effective-pom</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>effective-pom</goal> |
| </goals> |
| <configuration> |
| <output>${project.build.directory}/effective.pom</output> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- |
| This profile adds some additional configuration that should only be applied when running on jenkins. |
| --> |
| <profile> |
| <id>jenkins-build</id> |
| <properties> |
| <skip-code-generation-tests>false</skip-code-generation-tests> |
| <enable-all-tests>true</enable-all-tests> |
| <excluded-test-groups/> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>enable-all-checks</id> |
| <properties> |
| <skip-code-generation-tests>false</skip-code-generation-tests> |
| <enable-all-tests>true</enable-all-tests> |
| <excluded-test-groups/> |
| </properties> |
| </profile> |
| |
| <!-- |
| Self enabling fake-plugin configuration to help Eclipse use Maven right |
| --> |
| <profile> |
| <id>only-eclipse</id> |
| <activation> |
| <property> |
| <name>m2e.version</name> |
| </property> |
| </activation> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <!-- |
| This is a fake plugin which is used to tell m2e (Eclipse) how |
| to process this maven project. |
| --> |
| <plugin> |
| <groupId>org.eclipse.m2e</groupId> |
| <artifactId>lifecycle-mapping</artifactId> |
| <version>1.0.0</version> |
| <configuration> |
| <lifecycleMappingMetadata> |
| <pluginExecutions> |
| <pluginExecution> |
| <pluginExecutionFilter> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <versionRange>[1.0.0,)</versionRange> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| </pluginExecutionFilter> |
| <action> |
| <ignore /> |
| </action> |
| </pluginExecution> |
| </pluginExecutions> |
| </lifecycleMappingMetadata> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </profile> |
| |
| <!-- |
| This is an experiment to get things working for VSCode (IntelliJ and Maven pick them up automatically) |
| Only if a "target/generated-source/plc4x" directory exists, will it be added. With this trick we don't need |
| to add this block to every module with generated code. If this causes problems with IntelliJ, Eclipse or Maven |
| we should probably come up with some other solution. It might also help people using Eclipse. |
| --> |
| <profile> |
| <id>add-generated-sources</id> |
| <activation> |
| <file> |
| <!-- |
| Please don't change "target" to "${project.build.directory}" as profile-activation happens before |
| property resolution ... it won't work with a property. |
| --> |
| <exists>src/main/generated/</exists> |
| </file> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>add-plc4x-sources</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${project.basedir}/src/main/generated/</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- |
| This profile extends the default "apache-release" configuration with automatic checksum- |
| generation for the release source artifact. It is automatically activated during the |
| release build and only needed there. |
| --> |
| <profile> |
| <id>apache-release</id> |
| <!-- Ensure these are run as part of a release-build --> |
| <properties> |
| <skip-code-generation-tests>false</skip-code-generation-tests> |
| <skip-dependency-cve-scan>false</skip-dependency-cve-scan> |
| </properties> |
| <build> |
| <plugins> |
| <!-- |
| Create MD5 and SHA512 checksum files for the release artifacts. |
| --> |
| <plugin> |
| <groupId>net.nicoulaj.maven.plugins</groupId> |
| <artifactId>checksum-maven-plugin</artifactId> |
| <version>1.11</version> |
| <!-- Only run this in the root module of the project --> |
| <inherited>false</inherited> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>files</goal> |
| </goals> |
| <configuration> |
| <algorithms> |
| <algorithm>SHA-512</algorithm> |
| </algorithms> |
| <includeRelativePath>true</includeRelativePath> |
| <fileSets> |
| <fileSet> |
| <directory>${project.build.directory}</directory> |
| <includes> |
| <include>apache-plc4x-${project.version}-source-release.zip</include> |
| </includes> |
| </fileSet> |
| </fileSets> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- |
| Generate an SBOM for the project |
| --> |
| <plugin> |
| <groupId>org.cyclonedx</groupId> |
| <artifactId>cyclonedx-maven-plugin</artifactId> |
| <version>2.7.9</version> |
| <!-- Only run this in the root module of the project --> |
| <inherited>false</inherited> |
| <configuration> |
| <outputName>apache-${project.artifactId}-${project.version}-sbom</outputName> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>makeAggregateBom</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| </project> |