2015-06-19 5 views
0

У меня есть динамический веб-проект, который мы будем называть «проектом А» и другим обычным проектом java, который мы будем называть «проектом B» в eclipse. Я добавил проект b к B к проекту A, перейдя в свойства проекта Properties -> Deployment Assembly -> Add -> Project. Это работает и добавляет банку «проект B.jar» в папку проекта A/WEB-INF/lib. Однако внешние файлы jar, сконфигурированные в «проекте B», не включены в «проект B.jar». Кроме того, я отправился в project b -> Properties -> Java Build Path -> Order and Export , и я проверил все необходимые зависимости для «проекта B», и он все еще не включает их в банку. Как я могу получить затмение, чтобы включить эти банки в файл «project B.jar».Dynamic WebProject импортирует другой проект и зависимости

Если вам нужно знать, что я использую eclipse Indigo, и мы не используем mavin для этого проекта только для этой единственной банки. Заранее спасибо.

ответ

0

Вы должны превратить проект B в грань формы (перейти к свойствам проекта, «Границы проекта» -> «Преобразовать в грань формы ...»). Единственными аспектами являются «Java» и «Utility Module». Если я правильно помню, в этот момент Eclipse дает вам предупреждение о том, что эти дополнительные зависимости JAR могут отсутствовать во время выполнения проекта A, предоставляя вам возможность быстрого исправления, чтобы добавить их в качестве зависимостей. Это добавит attributes элемент в .classpath файла проекта B для каждого указанного файла JAR, например, как это:

<classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"> 
    <attributes> 
     <attribute name="org.eclipse.jst.component.dependency" value="../"/> 
    </attributes> 
</classpathentry> 

JARs, которые не должны быть включены получите этот атрибут вместо:

<attributes> 
    <attribute name="org.eclipse.jst.component.nondependency" value=""/> 
</attributes> 

Если вы не получили указанные предупреждения, вы можете просто добавить элемент attributes напрямую. Примечание: это все для Eclipse Luna, но я знаю, по крайней мере, в Kepler, что он уже работал так.

+0

Спасибо за ответ @Hein. «Проект B» - грандиозный проект, и он имеет выбранный модуль утилиты. Однако мой файл .classpath не похож на предоставленный. Mine все выглядят как '' и не имеют полей атрибутов. Если я добавлю их вручную, что должно быть значением 'value =" ../ "/>'? – rickmaster

+0

Вы должны просто оставить его таким, как, например, 'value =" ../ ". По крайней мере, это работает для меня с моими динамичными веб-проектами. Я нашел эти два потока, которые меня путают, потому что кажется, что я должен использовать 'value ="/WEB-INF/lib ", потому что у меня также есть отдельный веб-проект: http://www.eclipse.org/forums/index .php/t/172866/https://wiki.eclipse.org/ClasspathEntriesPublishExportSupport. Но запись '' ../ "' - это то, что Eclipse создало для меня и которое работает. –

+0

Еще раз спасибо @Hein редактирование моего classpath в проекте B и добавление проработанных записей. – rickmaster

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