2013-07-03 2 views
0

Я использую netbeans 7.1.1 и плющ вместе. У меня есть файл ivy.xml следующим образом:включая файл jar в зависимостях плюща

<?xml version="1.0" encoding="UTF-8"?> 
<ivy-module version="2.0"> 
    <info module="Laitsv3second" organisation="Laitsv3second" revision="1.0"/> 
<dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.integration"> 
</dependency> 
</ivy-module> 

Теперь проблема заключается в следующем: мой проект использует библиотеку log4j, а также. и когда я запускаю проект я получаю ошибку следующим образом:

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest 

загруженная библиотека HttpClient содержит этот класс org.apache.http.client.methods.HttpUriRequest.java, но это интерфейс и, следовательно, эта ошибка возникающие. Я заметил, что ivy ссылки sources.jar в библиотеках плющ, которые содержат java-интерфейс, но я хочу, чтобы httpclient.jar был включен в проект, который является скомпилированной версией источников, содержащих .class файлов. Есть ли способ, которым это возможно?

ответ

0

Вышеупомянутая ошибка заключается в том, что библиотеки плющ не добавляются в путь класса java. Этот вопрос сообщается на веб-сайте ivyBeans. Here are the details of the issue. Как я сказал здесь, я тоже решил эту проблему, включив опцию «скомпилировать при сохранении» в netbeans. Я думал, что это решение может помочь другим, таким образом, опубликовать.

1

Прежде всего, ваш плющ-файл недействителен. Вы упускаете закрывающие «зависимости» тег:

<ivy-module version="2.0"> 
    <info module="Laitsv3second" organisation="Laitsv3second" revision="1.0"/> 
    <dependencies> 
     <dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.integration"/> 
    </dependencies> 
</ivy-module> 

То, что я подозреваю, ваша реальная проблема в том, что вы не устанавливать свой путь к классам правильно в вашей ANT сборки. Невозможно диагностировать дальше на основе имеющейся информации.

То, что я хотел бы предложить использовать рабочий пример в следующем ответе:

Я рекомендую проверить, как он использует конфигурации в файле плющ и задачу плюща, как:

  • cachepath - Используется для создания пути ANT на основе конфигурации с плющом
  • report - Используется для документирования того, как плющ решает свои зависимости. Отчет, созданный для каждой конфигурации в файле плюща.
  • retrieve - Используется для локального локального восстановления разрешенных файлов. Полезно при построении распределения
  • manifestclasspath - Малоизвестная задача ANT, очень мощная, когда в сочетании с извлечением плюща.
+0

Извините, что я вставил неправильно. мой ivy.xml был в порядке. Да, вы правы, мой путь к классам не устанавливается корректно каким-то образом мусором, он не включает библиотеки плюща, которые я не знаю, почему. Позвольте мне проверить ваш пример и мой файл build.xml, и я вернусь к вам. Спасибо – tejas

+0

Я пытался исправить эту проблему classpat с 2 дней. У меня есть jhall.jar на моих библиотеках плюща, и все же я получаю сообщение об ошибке «java.lang.NoClassDefFoundError: javax/help/HelpSet» во время выполнения. Попытка найти причину. – tejas

+0

@tejas Это новый вопрос. Как указано выше, невозможно сказать, что управление классом осуществляется задачами плюща в файле сборки. Извините, не могу помочь. –

Смежные вопросы