Как построить плагин Eclipse с Maven, Tycho и Jython? - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу создать плагин Eclipse, способный выполнять код Python.Для этого я хочу использовать Jython.Кроме того, я использую Maven для зависимостей и хочу использовать Maven для упаковки.

Моя проблема: (Решение добавлено ниже) Я не могу собрать с Maven плагин eclipse, использующий Jython,Maven говорит «BUILD SUCCESS», но Tycho & jython-compile-maven-plugin не работают вместе.Плагин jython работает, потому что на выходе есть два jar, обычный jar и jar с извлеченным Jython.Плагин Tycho работает, потому что обычный jar является допустимым плагином.Но баночка с извлеченным Jython, которая необходима, не является допустимым плагином.Так как правильно связать эти 2 плагина?

Вопросы:

  1. Как собрать Tycho + jython-compile-maven-plugin вместе?
  2. Я использую unpack-dependencies для распаковки библиотек python, но работает только один раз, если папка удалена / переименована / ... Maven Update Project никогда больше не вызывал это.

Поскольку Maven, Tycho, Jython, M2E являются новыми для меня, я ...:

  • создал проект Java с использованием Jython, упакованный как исполняемый файл с Maven, работающий
  • создан плагин eclipse, сборка с плагинами Maven и tycho, работает
  • создан плагин eclipse с использованием Jython с «BundleShape: dir» без Maven, работает

Как воспроизвести проблему?

Eclipse Photon, Modeling + installed M2E:
 - Create new Plug-in Project name: ExampleMavenJythonEclipsePlugin, Version: 1.0.0.qualifier
 - [x] This plug-in will make contributions to the UI (and no RC Application)
    - [x] Create a plug-in using one of the templates
      - View contribution using 3.x API
        - View Class Name: SampleView
 - Convert Project to Maven Project
 - Replace POM with given given source
    - Run Maven "Update Project...", refresh workspace after
      - if there are pom errors like "Execution default-compile of goal org.eclipse.tycho:tycho-compiler-plugin [...]" do a change anywhere in pom and save (like insert newline, whitespace, tab, ...)
 - Replace SampleView Class with given source (don't delete your package)
 - Open plugin.xml, runtime, add classpath libs/jython-standalone.jar
 - right click pom, run as, maven build..., goals: clean package

 Testing:
 - Put the plugin to eclipse plugin dir, restart eclipse
   - window -> show view -> other
      - Sample Category, Sample View

Дополнительно: «запускать как приложение Eclipse» не означает, что он работает, если упакован.Я использую Jython-Standalone.

Редактировать 1: Я добился определенного прогресса.Я не правильно понял, как Tycho работает в начале.Tycho использует Manifest / build.properties, а не зависимости pom.POM управляет не зависимостями времени выполнения, поэтому мне нужно было добавить jython-standalone.jar во время выполнения.Плагин jython-compile-maven-plugin не нужен.Мне кажется наиболее важным для Jython, что папка / Lib с кодом Python находится в корневой точке, если она находится в банке.Есть много возможностей для решения этой проблемы, я использую исходную папку, созданную с помощью eclipse с именем "pythonExtracted".Новая исходная папка должна теперь находиться в build.properties.Каждая исходная папка копируется в корень фляги.Файл jython-standalone.jar находится в libs / и добавляется в classpath вручную.Если вы установите "python.home" для plugin.jar, он будет работать.Но я не могу разрешить связку и путь "."указывает на eclipse.exe, а не на jar-файл, как при использовании работающего jar-файла.

Мне не нравится, что теперь у меня есть папка Lib в два раза с тем же кодом.Я попытался извлечь jython в lib / jython и установить путь к классу времени выполнения.Пытался изменить домашний путь Python.Ничего не работает, если плагин упакован в банку.Похоже, что это может быть только / Lib внутри банки.Я пытался использовать Jython (не автономно) в библиотеках, но извлек папку Lib из автономной версии, но PySystemState / PythonInterpreter не удалось разрешить после упаковки.

Решение:

- you need to add libs/jython to runtime classpath manually
- you need to create a source folder named: pythonExtracted (or adjust pom.xml below)
+ working if eclipse plugin packed as jar
+ Maven Update Project prepares the project
- python libs are twice in (extra ~10MB)

Решение: Pom.xml (без конфигурации M2E)

<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>
    <groupId>ExampleMavenJythonEclipsePlugin</groupId>
    <artifactId>ExampleMavenJythonEclipsePlugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <packaging>eclipse-plugin</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <eclipse-release-url>http://download.eclipse.org/releases/photon</eclipse-release-url>
        <maven-tycho-version>1.2.0</maven-tycho-version>
        <maven-dependency-plugin-version>3.1.1</maven-dependency-plugin-version>
        <maven-compiler-plugin-version>3.8.0</maven-compiler-plugin-version>
    </properties>

    <repositories>
        <repository>
            <id>eclipse-release</id>
            <layout>p2</layout>
            <url>${eclipse-release-url}</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.python</groupId>
            <artifactId>jython-standalone</artifactId>
            <version>2.7.1</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin-version}</version>
                <executions>
                    <execution> <!-- JythonStandalone to /libs, strip version -->
                        <id>copyLibs</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <stripVersion>true</stripVersion>
                            <stripClassifier>true</stripClassifier>
                            <overWriteReleases>true</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <outputDirectory>${project.basedir}/libs</outputDirectory>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.python</groupId>
                                    <artifactId>jython-standalone</artifactId>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpackPythonLibsFromJython</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeGroupIds>org.python</includeGroupIds>
                            <includeArtifactIds>jython-standalone</includeArtifactIds>
                            <includes>Lib/**/*</includes>
                            <outputDirectory>${project.basedir}/pythonExtracted</outputDirectory> <!-- has to be a source folder -->
                            <overWriteReleases>true</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin-version}</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${maven-tycho-version}</version>
                <extensions>true</extensions>
            </plugin>

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${maven-tycho-version}</version>
                <configuration>
                    <pomDependencies>consider</pomDependencies>
                    <environments>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Решение: Pom.xml (с настройкой M2E)

<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>
    <groupId>ExampleMavenJythonEclipsePlugin</groupId>
    <artifactId>ExampleMavenJythonEclipsePlugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <packaging>eclipse-plugin</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <eclipse-release-url>http://download.eclipse.org/releases/photon</eclipse-release-url>
        <maven-tycho-version>1.2.0</maven-tycho-version>
        <maven-dependency-plugin-version>3.1.1</maven-dependency-plugin-version>
        <maven-compiler-plugin-version>3.8.0</maven-compiler-plugin-version>
    </properties>

    <repositories>
        <repository>
            <id>eclipse-release</id>
            <layout>p2</layout>
            <url>${eclipse-release-url}</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.python</groupId>
            <artifactId>jython-standalone</artifactId>
            <version>2.7.1</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin-version}</version>
                <executions>
                    <execution> <!-- JythonStandalone to /libs, strip version -->
                        <id>copyLibs</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <stripVersion>true</stripVersion>
                            <stripClassifier>true</stripClassifier>
                            <overWriteReleases>true</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <outputDirectory>${project.basedir}/libs</outputDirectory>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.python</groupId>
                                    <artifactId>jython-standalone</artifactId>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpackPythonLibsFromJython</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeGroupIds>org.python</includeGroupIds>
                            <includeArtifactIds>jython-standalone</includeArtifactIds>
                            <includes>Lib/**/*</includes>
                            <outputDirectory>${project.basedir}/pythonExtracted</outputDirectory> <!-- has to be a source folder -->
                            <overWriteReleases>true</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin-version}</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${maven-tycho-version}</version>
                <extensions>true</extensions>
            </plugin>

            <!-- Enable the replacement of the SNAPSHOT version in the final product 
                configuration 
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-packaging-plugin</artifactId>
                <version>${maven-tycho-version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <id>package-feature</id>
                        <configuration>
                            <finalName>${project.artifactId}_${unqualifiedVersion}.${buildQualifier}</finalName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-repository-plugin</artifactId>
                <version>${maven-tycho-version}</version>
                <configuration>
                    <includeAllDependencies>true</includeAllDependencies>
                </configuration>
            </plugin>-->

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${maven-tycho-version}</version>
                <configuration>
                    <pomDependencies>consider</pomDependencies>
                    <environments>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings 
                    only. It has no influence on the Maven build itself. -->
                <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-packaging-plugin</artifactId>
                                        <versionRange>[1.0.0,)</versionRange>
                                        <goals>
                                            <goal>validate-version</goal>
                                            <goal>validate-id</goal>
                                            <goal>build-qualifier</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>false</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.eclipse.tycho</groupId>
                                        <artifactId>tycho-compiler-plugin</artifactId>
                                        <versionRange>[1.0.0,)</versionRange>
                                        <goals>
                                            <goal>compile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>false</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            maven-dependency-plugin
                                        </artifactId>
                                        <versionRange>
                                            [${maven-dependency-plugin-version},)
                                        </versionRange>
                                        <goals>
                                            <goal>copy</goal>
                                            <goal>unpack-dependencies</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental>false</runOnIncremental>
                                        </execute>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

Решение: Activator.java (установите его в plugin.xml)

package examplemavenjythoneclipseplugin.views;

import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;

/**
 * The activator class controls the plug-in life cycle
 */
public class Activator extends AbstractUIPlugin {

    public static Bundle bundle = null;

    // The shared instance
    private static Activator plugin;

    /**
     * The constructor
     */
    public Activator() {
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
     */
    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;

        if (bundle == null) {
            bundle = context.getBundle();
        }
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
     */
    public void stop(BundleContext context) throws Exception {
        super.stop(context);
    }

    /**
     * Returns the shared instance
     *
     * @return the shared instance
     */
    public static Activator getDefault() {
        return plugin;
    }
}

Решение: SampleView.java

package examplemavenjythoneclipseplugin.views;

import java.io.File;
import java.util.Properties;

import org.eclipse.core.runtime.FileLocator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.part.ViewPart;
import org.osgi.framework.Bundle;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;

public class SampleView extends ViewPart {

    private static void pythonTest(final String home) {
        final Properties propsPre = System.getProperties();
        final Properties propsPost = new Properties();

        // suppress warning console encoding not set
        propsPost.put("python.console.encoding", "UTF-8"); 
        // if no Lib folder is found, constructor of PythonInterpreter fails, but this isn't useful
        propsPost.put("python.import.site", "false"); 

        // set python home path / cache dir for Jython (just package information)
        propsPost.put("python.cachedir", new File(home, "cachedir").getAbsolutePath());
        propsPost.put("python.home", new File(home).getAbsolutePath());

        // used for our own "System.out" => we can read it later with ease
        final java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();

        // needed only once in any application before any other Python/Jython code is used.
        PySystemState.initialize(propsPre, propsPost, new String[0]);
        try (final PythonInterpreter interpreter = new PythonInterpreter();) {
            interpreter.setOut(new java.io.PrintStream(out));
            interpreter.exec("print('Hello World')"); // checks if start is fine
            interpreter.exec("print ' '");
            interpreter.exec("print('importing sys'); import sys; print('done');"); // should work even if Lib not found
            interpreter.exec("print 'prefix:', sys.prefix");
            interpreter.exec("print ' '");
            interpreter.exec("print 'System path:', sys.path");
            interpreter.exec("print('importing os'); import os; print('done');"); // needs access to lib folder
            interpreter.exec("print('Hello World')"); // if anything above fails, null is printed not Hello World

            MessageDialog.openInformation(Display.getDefault().getActiveShell(), "Output:",
                    out.toString() + "\n" + (home));
        } catch (Throwable t) {
            MessageDialog.openError(Display.getDefault().getActiveShell(), "Jython failed",
                    out.toString() + "\n" + t.toString());
            t.printStackTrace();
        }
    }

    @Override
    public void createPartControl(Composite parent) {
        /* 1) Show Python home path
         * 2) make Python home path changable
         * 3) create button to start PythonInit & test
         */
        // I have no clue why, getBundle failed in various situations, the plugin Activator gets the bundle better.
//      final Bundle bundle = Platform.getBundle("ExampleMavenJythonEclipsePlugin"); // Argument = Manifest.Bundle-SymbolicName
        final Bundle bundle = Activator.bundle; // start(BundleContext context) => context.getBundle()

        // 1 & 2) Create input showing the home path used (fallback "." = not valid in this working version but is vor runnable jar)
        parent.setLayout(new FormLayout());
        final Text input = new Text(parent, SWT.SINGLE);
        FormData d = new FormData();
        d.top = new FormAttachment(parent, 0);
        d.left = new FormAttachment(parent, 0);
        d.right = new FormAttachment(100, 0);
        input.setLayoutData(d);
        try {
            File b = FileLocator.getBundleFile(bundle);
            input.setText(b.getAbsolutePath());
        } catch (Throwable e) {
            input.setText(".");
        }

        // 3) create button to start test
        final Button button = new Button(parent, SWT.PUSH);
        d = new FormData();
        d.top = new FormAttachment(input, 5);
        d.left = new FormAttachment(parent, 0);
        d.right = new FormAttachment(100, 0);
        button.setLayoutData(d);
        button.setText("test");
        button.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                pythonTest(input.getText());
            }
        });
    }

    @Override
    public void setFocus() {
    }
}

Решение: Maven Console "mvn clean package"

    [INFO] Scanning for projects...
    [INFO] Computing target platform for MavenProject: ExampleMavenJythonEclipsePlugin:ExampleMavenJythonEclipsePlugin:1.0.0-SNAPSHOT @ D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\pom.xml
    [INFO] Fetching p2.index from http://download.eclipse.org/releases/photon/
    [INFO] Fetching p2.index from http://download.eclipse.org/releases/photon/
    [INFO] Adding repository http://download.eclipse.org/releases/photon
    [INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/photon/
    [INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/photon/
    [INFO] Fetching p2.index from http://download.eclipse.org/releases/photon/201806271001/
    [INFO] Fetching p2.index from http://download.eclipse.org/releases/photon/201806271001/
    [INFO] Fetching content.xml.xz from http://download.eclipse.org/releases/photon/201806271001/
    [INFO] Fetching content.xml.xz from http://download.eclipse.org/releases/photon/201806271001/
    [INFO] Fetching content.xml.xz from http://download.eclipse.org/releases/photon/201806271001/ (248,94kB at 247,04kB/s)
    [INFO] Fetching content.xml.xz from http://download.eclipse.org/releases/photon/201806271001/ (701,55kB at 349,82kB/s)
    [INFO] Resolving dependencies of MavenProject: ExampleMavenJythonEclipsePlugin:ExampleMavenJythonEclipsePlugin:1.0.0-SNAPSHOT @ D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\pom.xml
    [INFO] Resolving class path of MavenProject: ExampleMavenJythonEclipsePlugin:ExampleMavenJythonEclipsePlugin:1.0.0-SNAPSHOT @ D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\pom.xml
    [INFO] 
    [INFO] -----
    [INFO] Building ExampleMavenJythonEclipsePlugin 1.0.0-SNAPSHOT
    [INFO] ---------------------------[ eclipse-plugin ]---------------------------
    [INFO] 
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Deleting D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\target
    [INFO] 
    [INFO] --- tycho-packaging-plugin:1.2.0:build-qualifier (default-build-qualifier) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] The project's OSGi version is 1.0.0.201812181615
    [INFO] 
    [INFO] --- tycho-packaging-plugin:1.2.0:validate-id (default-validate-id) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] 
    [INFO] --- tycho-packaging-plugin:1.2.0:validate-version (default-validate-version) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] 
    [INFO] --- maven-dependency-plugin:3.1.1:unpack-dependencies (unpackPythonLibsFromJython) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Unpacking D:\Programme\.m2\org\python\jython-standalone\2.7.1\jython-standalone-2.7.1.jar to D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\pythonExtracted with includes "Lib/**/*" and excludes ""
    [INFO] 
    [INFO] --- maven-dependency-plugin:3.1.1:copy (copyLibs) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Configured Artifact: org.python:jython-standalone:?:jar
    [INFO] Copying jython-standalone-2.7.1.jar to D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\libs\jython-standalone.jar
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\src\main\resources
    [INFO] 
    [INFO] --- tycho-compiler-plugin:1.2.0:compile (default-compile) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Compiling 2 source files to D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\target\classes
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\src\test\resources
    [INFO] 
    [INFO] --- target-platform-configuration:1.2.0:target-platform (default-target-platform) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] 
    [INFO] --- tycho-packaging-plugin:1.2.0:package-plugin (default-package-plugin) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] Building jar: D:\Programme\eclipse\modeling oxygen\MDSD-Prototyping\ExampleMavenJythonEclipsePlugin\target\ExampleMavenJythonEclipsePlugin-1.0.0-SNAPSHOT.jar
    [INFO] 
    [INFO] --- tycho-p2-plugin:1.2.0:p2-metadata-default (default-p2-metadata-default) @ ExampleMavenJythonEclipsePlugin ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 55.097 s
    [INFO] Finished at: 2018-12-18T17:16:51+01:00
    [INFO] ------------------------------------------------------------------------

...