Плагин Maven NAR: не найдена зависимость DLL от пути

Я пытаюсь собрать и протестировать DLL, используя Maven и плагин NAR. Библиотека, которую я создаю, зависит от другой библиотеки DLL, которую я создал также с помощью плагина NAR. Вот мой POM:

<project>  
  <modelVersion>4.0.0</modelVersion>  

  <groupId>com.mycompany</groupId>  
  <artifactId>myproject</artifactId>  
  <packaging>nar</packaging>  

  <name>My Project</name>  
  <version>1.0.0-SNAPSHOT</version>  

  <properties>  
    <skipTests>true</skipTests>  
  </properties>  

  <build>  
    <defaultGoal>install</defaultGoal>  
    <plugins>  
      <plugin>  
        <groupId>org.codeswarm</groupId>  
        <artifactId>maven-nar-plugin</artifactId>  
        <version>20121119</version>  
        <extensions>true</extensions>  
        <configuration>  
          <cpp>  
            <defines>  
              <define>DLLEXPORT</define>  
            </defines>  
          </cpp>  

          <libraries>  
            <library>  
              <type>shared</type>  
            </library>  
          </libraries>  

          <tests>  
            <test>  
              <name>ProjectTest</name>  
              <link>shared</link>  
            </test>  
          </tests>  
        </configuration>  

      </plugin>  
    </plugins>  
  </build>  

  <dependencies>  
    <dependency>  
      <groupId>com.mycompany</groupId>  
      <artifactId>shared-library</artifactId>  
      <version>1.0.0-SNAPSHOT</version>  
      <type>nar</type>  
      <scope>runtime</scope>  
    </dependency>  
  </dependencies>  

</project>

Если я уберу зависимость от com.mycompany:shared-library - также удаляя код, который хочет вызвать его, - тогда он работает нормально. ProjectTest работает нормально и делает то, что должен. Но при наличии зависимости maven не может запустить тест, потому что не может найти shared-library, Вылетает с ошибкой 0xc0000135,

Когда я запускаю Maven в режиме отладки, я вижу, что при компиляции теста он правильно добавляет пути включения для заголовочных файлов обеих DLL в команду компилятора. И когда он связывает тест, он правильно добавляет библиотеки экспорта для обеих библиотек DLL в команду компоновщика. Проблема возникает, когда Maven выполняет тест: Maven хочет добавить путь к DLL в системный путь, и он делает это - но он только добавляет путь к myproject DLL. Это не добавляет путь к shared-library DLL. Отсюда крушение.

Это известная проблема в maven-nar-plugin? Я также слышал, что это говорит о том, что вокруг плавающего плагина NAR есть несколько вилок; Может ли эта проблема быть исправлена ​​в какой-то версии плагина, отличного от того, который я использую? Или есть какое-то решение, которое можно порекомендовать?

1 ответ

Обнаружено, что это известная проблема: https://issues.sonatype.org/browse/NAR-189

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