У меня есть проект плагина, который я пытаюсь создать для тестового плагина. Пакеты в моем проекте плагина доступны для других плагинов в моей рабочей области, включая тестовый плагин, но когда я пытаюсь строить свои проекты с помощью tycho, тестовый плагин выдает ошибку, в которой говорится, что импорт не может быть разрешен.Импорт не может быть разрешен фрагментом тестового плагина с использованием Tycho, но работает в Eclipse
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:0.25.0:compile (default-compile) on project REDACTED.tests: Compilation failure: Compilation failure:
[ERROR] REDACTED/PlanImportTest.java:[7]
[ERROR] import REDACTED.pluginname.Argument;
[ERROR] ^^^^^^^^^^^^
[ERROR] The import REDACTED.pluginname cannot be resolved
Я новичок в Тайко, так что я думаю, что, вероятно, проблема с моей макет проекта, но я не могу найти решение моей проблемы в Интернете. Кто-нибудь знает, почему этот импорт работает в eclipse, но не при запуске сборки maven/tycho в командной строке? Соответствующие файлы ниже.
Плагин манифеста:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: REDACTED.pluginname
Bundle-SymbolicName: REDACTED.pluginname;singleton:=true
Bundle-Version: 1.0.0.qualifier
Export-Package: REDACTED
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Eclipse-BuddyPolicy: registered
Eclipse-RegisterBuddy: REDACTED
Плагин POM:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>REDACTED</groupId>
<artifactId>REDACTED</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>REDACTED</relativePath>
</parent>
<groupId>REDACTED</groupId>
<artifactId>REDACTED.pluginname</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
Тест класс
import static org.junit.Assert.*;
import org.junit.Test;
import REDACTED.pluginname.Argument;
public class PlanImportTest {
@Test
public void test() {
Argument a = null;
assertTrue(true);
}
}
испытания манифеста проекта:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: REDACTED
Bundle-SymbolicName: REDACTED.tests
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: REDACTED
Fragment-Host: REDACTED.pluginname;bundle-version="1.0.0.qualifier"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit;bundle-version="4.12.0"
испытания проекта POM:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>REDACTED</groupId>
<artifactId>REDACTED</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>REDACTED</relativePath>
</parent>
<groupId>REDACTED</groupId>
<artifactId>REDACTED.tests</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<testClass>REDACTED.Test</testClass>
<dependencies>
<dependency>
<type>eclipse-plugin</type>
<groupId>REDACTED</groupId>
<artifactId>REDACTED.pluginname</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</configuration>
</plugin>
</plugins>
</build>
</project>
Не нужно явно указывать зависимости в тестовом проекте pom. Вместо этого ваш родительский pom должен отображать оба проекта как «модули». –
Ах, да, я уже это делаю, и модуль плагина теперь загружается успешно. Я удалю этот плагин из pom, это было нечто, что я пробовал в дополнение к другим вещам, чтобы надеяться заставить его работать. –