Подтвердить что ты не робот

Запустите проект NetBeans только с ant

У меня есть пример кода, который был построен с Netbeans.

У него есть файл build.xml, поэтому я загрузил ant и попытался запустить его.

У меня есть это сообщение об ошибке:

...... nbproject\build-impl.xml:76: Platform is not correctly set up

Для того, что я вижу, это фиксируется "просто" загрузкой Netbeans и запуском образца оттуда, но... Я не хочу его устанавливать, чтобы запустить образец 10 файлов.

Существует ли обходной путь для запуска проектов Netbeans с Java? Какой правильный файл .properties мне нужно изменить?

4b9b3361

Ответ 1

можно запускать созданные с NetBeans проекты прямо из Java/ ANT, но вам может потребоваться вручную установить некоторые из свойств и/или добавить пути к файлам jar.

К сожалению, NetBeans имеет тенденцию включать taskdef, используя свои собственные JAR файлы и ссылочные свойства, которые определены только в файлах /nbproject/private/private.properties, которые обычно устанавливаются при первом запуске проекта NetBeans или изменены при редактировании проекта в среде IDE,

Если вы проверите build-impl.xml, вы сможете найти свойство и определить, какое значение нужно установить (платформа ОС), либо:

  • создать/установить свойство в /nbproject/private.properties
  • добавьте это определение свойства в parent build.xml
  • передать в командной строке при вызове ant используя -DPlatform=Foo

Лично мне нравится структура созданных NetBeans файлов и целевых объектов ANT, но не нравится, сколько пользовательских/проприетарных материалов они застревают, что затрудняет работу без NetBeans.

Например:

ant -Dplatforms.JDK_1.7.home=/opt/jdk 

Ответ 2

Я только что успешно создал проект NetBeans с ant. Это были вещи, которые я должен был сделать:

  • Скопируйте <NetBeans-folder>/java2/ant на машину "Безболезненный".
  • Скопировать nbproject/project.properties, например, ant.properties
  • Заменить каждое выражение ${} в ant.properties с его значением
  • Добавить платформу. <platform-name>.home = <path to platform>
  • Добавить libs.CopyLibs.classpath = <path to nb-ant>/extra/org-netbeans-modules-java-j2seproject-copylibtask.jar
  • Добавьте другие необходимые классы классов в javac.classpath(например, путь к servlet-api.jar)
  • ant -propertyfile ant.properties

Это работает, но не делает меня счастливым. Я хотел бы либо найти способ повторно использовать project.properties, либо автоматически перевести его в "разрешенную" версию (шаг 3). Затем сборка может быть автоматизирована.

Ответ 3

Я только что прошел это упражнение с моим проектом NetBeans 7.0. То, что я смог сделать, это скопировать файл build.properties из каталога .netbeans\7.0 в моей системе Windows и сделать файл server.properties для моего сервера сборки. Это не так много, так как каждый разработчик build.properties может отличаться, поэтому следует ожидать наличия другого файла для сервера. Затем я собрал простой файл server-build.xml, который ссылается на этот файл и выполняет только основы init, compile, dist и clean. Я передал эти два файла в мой репозиторий CVS на верхнем уровне моего каталога проектов, так как они не конфликтуют с другими файлами проекта и служат напоминанием, если что-то нужно обновить. Теперь я могу создать свой проект на своем CI-сервере с помощью "ant -f server-build.xml", и все просто работает.

Вся моя секция инициализации выглядит так: приоритет моего пути к серверу, но включая необходимую информацию из свойств проекта NetBeans.

<target name="init">
    <property file="server.properties"/>
    <property file="nbproject/project.properties"/>
</target>

Мне также приходилось делать что-то подобное при определении задач ant для моих вложенных проектов:

<target name="compile">
    <ant antfile="${project.MyProj-common}/build.xml" inheritall="false" target="jar">
        <property location="${build.dir}" name="dist.ear.dir"/>
        <property file="server.properties"/>
        <property file="${project.MyProj-common}/nbproject/project.properties"/>
    </ant>
    ...
</target>

Мне пришлось скопировать j2ee.platform.classpath из project.properties в файл server.properties, чтобы убедиться, что ссылки на j2ee.server.home решены по мере необходимости. Я не ожидал этого, но путь classpath был неправильным, в результате чего сборка завершилась неудачей.

Спасибо за информацию по этому вопросу, так как это помогло мне помочь в этом решении.

Ответ 4

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

Но вот хорошая ссылка, чтобы экспортировать построенный проект ant из netbeans в сервер непрерывной интеграции (или может быть в любой другая IDE тоже).

Техника идет неплохо. Вот резюме:

  • установить netbeans на CI-сервере (есть возможность сделать это без gui, использовать -silent у установщика netbeans)
  • включить nbproject в SVN
  • добавить в игнор-лист личную папку
  • создать собственную личную папку на сервере CI
  • укажите его в папку вашего сервера CI (подражая частной папке пользователя в учетной записи, используемой для CI).
  • скопируйте настоящую папку от пользователя в эту папку и измените каждый путь (замените строки), чтобы указать на установку netbeans на вашем сервере CI.

И он должен работать.

Ответ 5

Просто чтобы добавить в Mads ' ответ... обычно вам нужно установить и открыть Netbeans хотя бы один раз на целевой машине. Проекты ANT также полагаются на несколько настроек из каталога USERDIR/.netbeans/.... Это может измениться с 6.5 +.

Это приведет к настройке некоторых базовых настроек и определению пути к классам для ячеек netbeans. Если ваши зависимости (например, библиотеки) или проект запускаются из другого каталога с момента последнего запуска проекта в Netbeans, вам нужно будет настроить несколько параметров в файле private.properties, как описано в Mads.

Ответ 6

Я использую Netbeans 6.8, а java-проекты, созданные с помощью Netbeans, могут запускаться из файлов сгенерированных файлов Netbeans с помощью только ant в cli. Все обычные цели, такие как ant compile, ant run, ant clean и т.д., Просто "работают". (Я использую Fedora 13, если это имеет значение)

Ответ 7

Вы можете использовать это репо только для этого https://github.com/albfan/ant-netbeans

Он преодолевает все странности netbeans, завернутые в ant config, поэтому вам просто нужно:

Скомпилировать:

$ ant.sh compile

Для запуска:

$ ant.sh run

Для чего угодно (автозаполнение):

$ ant.sh <tab><tab>