Запустите проект NetBeans только с ant
У меня есть пример кода, который был построен с Netbeans.
У него есть файл build.xml, поэтому я загрузил ant и попытался запустить его.
У меня есть это сообщение об ошибке:
...... nbproject\build-impl.xml:76: Platform is not correctly set up
Для того, что я вижу, это фиксируется "просто" загрузкой Netbeans и запуском образца оттуда, но... Я не хочу его устанавливать, чтобы запустить образец 10 файлов.
Существует ли обходной путь для запуска проектов Netbeans с Java? Какой правильный файл .properties мне нужно изменить?
Ответы
Ответ 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>