parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eclipse.elk</groupId>
<artifactId>parent</artifactId>
<version>0.11.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2019-2024 Kiel University and others.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0.
SPDX-License-Identifier: EPL-2.0
-->
<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>
<artifactId>parent</artifactId>
<groupId>org.eclipse.elk</groupId>
<name>Eclipse Layout Kernel</name>
<url>https://www.eclipse.org/elk/</url>
<version>0.11.0</version>
<description>An infrastructure for automatic graph layout and implementations of different layout algorithms.</description>
<packaging>pom</packaging>
<!-- Define a few properties used throughout all build profiles. -->
<properties>
<targetJdk>17</targetJdk>
<maven.compiler.release>${targetJdk}</maven.compiler.release>
<maven.compiler.source>${targetJdk}</maven.compiler.source>
<maven.compiler.target>${targetJdk}</maven.compiler.target>
<tycho-version>4.0.12</tycho-version>
<xtext-version>2.36.0</xtext-version>
<elk-version>${project.version}</elk-version>
<!-- chsch: copied from https://eclipse.googlesource.com/recommenders/org.eclipse.recommenders/+/3dae4575d3370da2da25a1cbce3dfcff198f0611/features/pom.xml -->
<!-- Non-breakable space, as normal spaces are trimmed. -->
<sourceFeatureLabelSuffix> (Sources)</sourceFeatureLabelSuffix>
<!-- guarantee that we use utf8 for compilation, this is especially required
due to xtend's template symbols («) when running maven on windows. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
</properties>
<!-- Define one profile for each output target we have -->
<profiles>
<!-- The ELK Update Site. -->
<profile>
<id>elk-update-site</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>../plugins</module>
<module>../features</module>
<module>../test</module>
<module>org.eclipse.elk.repository</module>
</modules>
</profile>
<!-- The Meta Data Language compiler. -->
<profile>
<id>elk-meta</id>
<modules>
<module>../plugins/org.eclipse.elk.graph</module>
<module>../plugins/org.eclipse.elk.core.meta</module>
</modules>
</profile>
<!-- Activate to have the generated artifacts signed by Eclipse. -->
<!-- Only works if the build is run on the Eclipse infrastructure. -->
<profile>
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>sign</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- The Maven publishing configuration. -->
<profile>
<id>maven-publish</id>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>false</autoPublish>
<waitUntil>published</waitUntil>
<centralSnapshotsUrl>
https://central.sonatype.com/repository/maven-snapshots/</centralSnapshotsUrl>
<excludeArtifacts>
<excludeArtifact>
org.eclipse.elk.alg.disco.debug
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.conn.gmf
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.debug.grandom.ide
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.debug.grandom.ui
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.debug.grandom
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.debug
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.meta.ui
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.ui
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graph.json.text.ui
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graph.text.ui
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.common.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.disco.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.force.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.layered.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.mrtree.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.radial.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.rectpacking.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.spore.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.alg.topdown.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.core.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graph.json.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graph.test
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.shared.test
</excludeArtifact>
<excludeArtifact>
test
</excludeArtifact>
<excludeArtifact>
features
</excludeArtifact>
<excludeArtifact>
plugins
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.algorithms.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graphviz.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.gmf.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.ui.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.graph.json.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.libavoid.feature
</excludeArtifact>
<excludeArtifact>
org.eclipse.elk.sdk.feature
</excludeArtifact>
</excludeArtifacts>
</configuration>
</plugin>
<!-- Create GPG signatures. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- Modify the build process to add Tycho and configure some utility plug-ins. -->
<build>
<plugins>
<!-- license-check plugin to automatically generate dependency list -->
<plugin>
<groupId>org.eclipse.dash</groupId>
<artifactId>license-tool-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>license-check</id>
<goals>
<goal>license-check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- We need tycho to build eclipse plugins -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
</plugin>
<!-- Setup our target platform for the build -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<requireEagerResolve>true</requireEagerResolve>
<target>
<artifact>
<groupId>org.eclipse.elk</groupId>
<artifactId>org.eclipse.elk.targetplatform</artifactId>
<version>${elk-version}</version>
</artifact>
</target>
<target>
<!-- Replace multi module dir by basedir after Tycho 3.0+ can be used.
see https://github.com/eclipse-tycho/tycho/issues/1660 -->
<file>${maven.multiModuleProjectDirectory}/org.eclipse.elk.targetplatform/org.eclipse.elk.targetplatform.target</file>
</target>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
<!-- skip generating poms for P2 dependencies managed by tycho. Avoids this issue: https://www.eclipse.org/forums/index.php?t=msg&th=1111563&goto=1854788& -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<skipPomGeneration>true</skipPomGeneration>
</configuration>
</plugin>
<!-- Build source plugin bundles -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>plugin-source</id>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Enable Java assertions during JUnit test runs. -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<enableAssertions>true</enableAssertions>
<excludes>
<exclude>**/TestUtil.java</exclude>
</excludes>
<systemProperties>
<ELK_REPO>${tests.paths.elk-repo}</ELK_REPO>
<MODELS_REPO>${tests.paths.models-repo}</MODELS_REPO>
</systemProperties>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- Compile MELK files to options classes -->
<plugin>
<groupId>org.eclipse.xtext</groupId>
<artifactId>xtext-maven-plugin</artifactId>
<version>${xtext-version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<languages>
<language>
<setup>org.eclipse.elk.core.meta.MetaDataStandaloneSetup</setup>
<outputConfigurations>
<outputConfiguration>
<outputDirectory>${basedir}/src-gen/</outputDirectory>
</outputConfiguration>
</outputConfigurations>
</language>
</languages>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.elk</groupId>
<artifactId>org.eclipse.elk.graph</artifactId>
<version>[${elk-version}]</version>
</dependency>
<dependency>
<groupId>org.eclipse.elk</groupId>
<artifactId>org.eclipse.elk.core.meta</artifactId>
<version>[${elk-version}]</version>
</dependency>
</dependencies>
</plugin>
<!-- Maven Xtend plugin to tell maven how to compile Xtend code -->
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>${xtext-version}</version>
<configuration>
<outputDirectory>${basedir}/xtend-gen</outputDirectory>
<javaSourceVersion>${maven.compiler.release}</javaSourceVersion>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Add src-gen and xtend-gen to source-directories -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src-gen</source>
<source>${project.build.directory}/xtend-gen</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Generated code needs cleanup too -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<filesets>
<fileset>
<directory>xtend-gen</directory>
<includes>
<include>**</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- Child projects may use this to be exempted from inclusion in the Maven repository -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- Configure Eclipse m2e to ignore certain plugin goals when integrating Maven build
settings into Eclipse. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<versionRange>${tycho-version}</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
<goal>validate-classpath</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<versionRange>${tycho-version}</versionRange>
<goals>
<goal>build-qualifier</goal>
<goal>build-qualifier-aggregator</goal>
<goal>validate-id</goal>
<goal>validate-version</goal>
<goal>package-plugin</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<versionRange>[3.0.0,)</versionRange>
<goals>
<goal>clean</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<versionRange>[4.0.12,)</versionRange>
<goals>
<goal>target-platform</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- Maven plugin repositories -->
<pluginRepositories>
<pluginRepository>
<id>dash-licenses-releases</id>
<url>https://repo.eclipse.org/content/repositories/dash-licenses-releases/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>eclipse-cbi</id>
<name>Eclipse Common Build Infrastructure Maven Repository</name>
<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
</pluginRepository>
</pluginRepositories>
<!-- Information about where the ELK code lives. -->
<scm>
<connection>scm:git:git://github.com/eclipse-elk/elk.git</connection>
<developerConnection>scm:git:ssh://git@github.com:eclipse-elk/elk.git</developerConnection>
<url>https://github.com/eclipse-elk/elk</url>
</scm>
<!-- The license ELK is available as. -->
<licenses>
<license>
<name>EPL-2.0</name>
<url>https://www.eclipse.org/legal/epl-2.0</url>
</license>
</licenses>
<!-- Our developers. -->
<developers>
<developer>
<id>soeren.domroes</id>
<name>Sören Domrös</name>
<email>sdo@informatik.uni-kiel.de</email>
<organization>Kiel University</organization>
<organizationUrl>https://www.rtsys.informatik.uni-kiel.de/</organizationUrl>
<roles>
<role>project lead</role>
</roles>
</developer>
<developer>
<id>maximilian.kasperowski</id>
<name>Maximilian Kasperowski</name>
<email>mka@informatik.uni-kiel.de</email>
<organization>Kiel University</organization>
<organizationUrl>https://www.rtsys.informatik.uni-kiel.de/</organizationUrl>
</developer>
<developer>
<id>miro.spoenemann</id>
<name>Miro Spönemann</name>
<email>miro.spoenemann@typefox.io</email>
<organization>TypeFox</organization>
<organizationUrl>http://typefox.io</organizationUrl>
</developer>
</developers>
</project>