Как я могу добавить в комплекте jar к моему classpath в задаче сборки Ant? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть плагин-проект в Eclipse.Я хочу скомпилировать свой код с помощью муравья.Теперь мне нужно добавить банку к моему classpath, у которого также есть несколько банок в своем classpath.Существует несколько экспортированных пакетов, которые необходимы для компиляции кода.Когда я добавляю этот jar к моим зависимостям и запускаю код с Eclipse, все работает отлично.Но муравей почему-то не может найти необходимый импорт.Манифест комплекта testfxplugin.jar:

Manifest-Version: 1.0
Automatic-Module-Name: dummyjar
Bundle-SymbolicName: dummyjar
Export-Package: com.sun.glass.ui.monocle,org.hamcrest,org.hamcrest.cor
 e,org.hamcrest.internal,org.testfx.api,org.testfx.assertions.api,org.
 testfx.assertions.impl,org.testfx.framework.junit,org.testfx.internal
 ,org.testfx.matcher.base,org.testfx.matcher.control,org.testfx.osgi,o
 rg.testfx.osgi.service,org.testfx.robot,org.testfx.robot.impl,org.tes
 tfx.service.adapter,org.testfx.service.adapter.impl,org.testfx.servic
 e.finder,org.testfx.service.finder.impl,org.testfx.service.locator,or
 g.testfx.service.locator.impl,org.testfx.service.query,org.testfx.ser
 vice.query.impl,org.testfx.service.support,org.testfx.service.support
 .impl,org.testfx.toolkit,org.testfx.toolkit.impl,org.testfx.util
Bundle-Name: Dummyjar
Bundle-Version: 1.0.0.qualifier
Bundle-ClassPath: libs/openjfx-monocle-8u76-b04.jar,libs/testfx-core-4
 .0.15-alpha.jar,libs/testfx-junit-4.0.15-alpha.jar,.,libs/org.hamcres
 t.core_1.3.0.v201303031735.jar
Class-Path: libs/openjfx-monocle-8u76-b04.jar,libs/testfx-core-4
 .0.15-alpha.jar,libs/testfx-junit-4.0.15-alpha.jar,.,libs/org.hamcres
 t.core_1.3.0.v201303031735.jar
Bundle-ManifestVersion: 2
Bundle-RequiredExecutionEnvironment: JavaSE-1.8

Вот цель-муравей:

<path id="classpath.test">
    <pathelement location="${test.lib}/testfxplugin.jar" />
    <pathelement location="${test.lib}/junit-4.9.jar" />
</path>

<target name="test-compile">
    <mkdir dir="${test.build}"/>
    <javac srcdir="${test.src}" destdir="${test.build}" includeantruntime="false">
        <classpath refid="classpath.test" />
    </javac>
</target>

1 Ответ

0 голосов
/ 13 декабря 2018

Как упомянуто @ greg-449, вам нужно будет добавить все необходимые банки как часть classpath.Примерно так:

<classpath>
  <fileset dir="lib">
    <include name="**/*.jar"/>
  </fileset>
</classpath>

Это просто пример для включения нескольких (подстановочных знаков) банок.Вы можете прочитать больше об этом в Path-like Structures

Это в основном транзитивная зависимость, т.е. ваши зависимости имеют свои собственные зависимости.Именно здесь можно использовать Maven, который автоматически заботится о таких зависимостях.Подробнее об этом здесь: Переходные зависимости Maven

...