Почему tycho-surefire-plugin:test рассматривает Bundle-ClassPath вместо bin.include?

В моем проекте плагина затмения. У меня есть специальный jar, который мне нужен, чтобы он был виден в процессе сборки, особенно на этапе тестирования, однако мне не нужно, чтобы он был виден во время выполнения плагина eclipse. Я обнаружил, что tycho-surefire-plugin использует файлы jar, которые существуют в Bundle-ClassPath файла MANIFEST.MF вместо bin.include для build.properties. Есть ли способ заставить tycho-surefire-plugin получить свой путь к классу из build.properties вместо MANIFEST.MF? как я вижу, это нормальная разница между двумя файлами.

Мой фрагмент проекта теста выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.myproject</groupId>
        <artifactId>projectparent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../../../../projectparent/pom.xml</relativePath>
    </parent>

    <artifactId>com.myproject.projecttest</artifactId>
    <packaging>eclipse-test-plugin</packaging>
    <name>${project.artifactId}</name>
    <description>
        Tests for my project
    </description>

    <properties>
        <maven.site.skip>true</maven.site.skip>
        <maven.site.deploy.skip>true</maven.site.deploy.skip>
    </properties>
</project>

1 ответ

Если я правильно понял ваш вопрос:

  • у вас есть некоторые зависимости, которые вам нужно использовать только на этапе тестирования, но не включать их в ваш продукт.

для этого вы должны использовать плагин target-platform-configuration для теста, а затем указать extraRequirements включить в свой тест только зависимости.

Пример target-platform-configuration:

  <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho.version}</version>
            <configuration>
                <environments>
                    <environment>
                        <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86</arch>
                    </environment>
                    <environment>
                        <os>linux</os>
                        <ws>gtk</ws>
                        <arch>x86</arch>
                    </environment>
                    <environment>
                        <os>linux</os>
                        <ws>gtk</ws>
                        <arch>x86_64</arch>
                    </environment>
                </environments>
                <dependency-resolution>
                    <optionalDependencies>ignore</optionalDependencies>
                    <extraRequirements>
                        <requirement>
                            <type>eclipse-plugin</type>
                            <id>org.eclipse.ui</id>
                            <versionRange>0.0.0</versionRange>
                        </requirement>
                        <requirement>
                            <type>eclipse-plugin</type>
                             <id>org.eclipse.ui.views</id>
                            <versionRange>0.0.0</versionRange>
                        </requirement>
                        <requirement>
                            .....
                        </requirement>
                    </extraRequirements>
                </dependency-resolution>
            </configuration>
        </plugin>

включите это в свой тестовый пом.

надеюсь это поможет.

Другие вопросы по тегам