Добавить свои исходники пакетов в pax-exam при сборке с помощью pax-maven-plugin

Я пытаюсь собрать свой пакет OSGI с помощью pax-maven-buildи в в то же время протестируйте его с помощью pax-exam. У него есть некоторый пакет, который я могу протестировать со следующей тестовой конфигурацией pax-exam:

@RunWith(JUnit4TestRunner.class)
@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
public class OSGILoaderTest {

    @Inject
    protected BundleContext bundleContext;

    @Configuration
    public Option[] config() throws MalformedURLException {


        String projectRoot = // a path to my project

        return options(
                junitBundles(),
                equinox(),
                bundle(projectRoot + "libs/org.eclipse.core.variables_3.2.500.v20110511.jar"),
                bundle(projectRoot + "libs/org.eclipse.core.contenttype_3.4.100.v20110423-0524.jar"),
                bundle(projectRoot + "libs/org.eclipse.core.expressions_3.4.300.v20110228.jar"),
                // etc...
        );
    }

    @Test
    public void getBundleContext() throws RodinDBException {
        IRodinDB rodinDB = RodinCore.getRodinDB();
        assertNotNull(rodinDB);
    }
}

Здесь я вижу, что могу получить доступ к экземпляру IRodinDB из подготовленного мной jar-файла.

Теперь у меня есть код моего собственного пакета, который будет использовать все подготовленные файлы jar. Но я даже не могу проверить свой код, например:

@Test
public void checkAccessToRodinDbTest() {
    VTGService service = null;
    assertTrue(true);
}

выдает ошибку во время компиляции:

[ОШИБКА] Не удалось выполнить цель org.ops4j:maven-pax-plugin:1.5:testCompile (default-testCompile): ошибка компиляции

[ОШИБКА] не удается найти символ

Символ [ОШИБКА]: class VTGService

Похоже, тестовая компиляция не может видеть «src/main/java», вопреки ожидаемому поведению maven-compiler-plugin по умолчанию.Но в моем случае вы можете видеть, что maven использует не плагин компилятора, а вместо него maven-pax-plugin.

Вопрос: как я могу протестировать свой пакет с pax-exam?

update1

Похоже, что это проблема последней версии maven-pax-plugin, поскольку базовый пример доступен в плагине ops4j pax maven(в разделе Использование плагина Pax внутри POM), кажется, страдает от той же проблемы.

update2

По просьбе Дмитрия это pom.xml моего пакета:




    
        ../poms/compiled/
        fr.xlim.ssd.vtg.build
        compiled-bundle-settings
        0.1-SNAPSHOT
    

    
        fr.xlim.ssd.vtg.bundle
        fr.xlim.ssd.vtg.bundle
    

    4.0.0
    fr.xlim.ssd.vtg
    fr.xlim.ssd.vtg.bundle
    0.1-SNAPSHOT

    ${bundle.symbolicName}

    bundle

    

        
            pom
            ${project.parent.groupId}
            provision
            true
        

         
        
            org.osgi
            osgi_R4_core
            true
        

        
            org.osgi
            osgi_R4_compendium
            true
        

        
            junit
            junit
            4.9
            test
        

        
            org.ops4j.pax.exam
            pax-exam
            2.3.0
            test
        

        
            org.ops4j.pax.exam
            pax-exam-junit4
            2.3.0
            test
        

        
            org.ops4j.pax.exam
            pax-exam-inject
            2.3.0
            test
        

        
            org.ops4j.pax.url
            pax-url-mvn
            1.3.5
            test
        

        
            org.ops4j.pax.exam
            pax-exam-container-native
            2.3.0
            test
        

        
            javax.inject
            javax.inject
            1
            test
        

        
            org.ops4j.pax.exam
            pax-exam-link-mvn
            2.3.0
            test
        

        
            ch.qos.logback
            logback-classic
            1.0.0
        

        
            ch.qos.logback
            logback-core
            1.0.0
        

    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.3.2
                
                    1.6
                    1.6
                
            
        
    



Я не уверен, что это самое элегантное решение, но я создал новый проект maven, когда смогу импортировать свой собственный пакет. как в исходном коде моего вопроса.

Есть ли элегантный способ добавить мои собственные исходные коды Java непосредственно в качестве нового пакета для тестирования в том же проекте Maven? Это может быть невозможно (поскольку операция сборки пакета выполняется послекомпиляции и тестов)...

5
задан Bill the Lizard 12 April 2012 в 12:24
поделиться