Build java project build xml

Build.xml in Java project

Although IDEs such as Eclipse and Netbeans have ant support built-in, it is also possible to run ant from the command-line and this may be the simplest way to get started if the project has been well created. I believe Eclipse has ant built-in, so it should be possible to execute the by choosing «Run As. » and «Ant Build».

Build.xml in Java project

What is the file build.xml ?

I was wondering if it is a possibility to import this project in Eclipse or Netbeans using this build.xml . I tried to import the project but I get some errors since one part is created using J2ME and the other J2SE and I guess this file should be the configuration.

build.xml usually is an ant build script.

It contains information necessary to build the project to produce the desired output, be it Javadocs, a compiled project, or a JAR file.

I believe Eclipse has ant built-in, so it should be possible to execute the build.xml by choosing «Run As. » and «Ant Build».

The build.xml file, if it is an ant script, is not used to import the project into an IDE like Eclipse or Netbeans. A build script is used to build the project (or produce some desired output) rather than an mechanism for importing the project into an IDE.

Читайте также:  Java map вывести только значения

As mentioned by @coobird this is an ant build file. Although IDEs such as Eclipse and Netbeans have ant support built-in, it is also possible to run ant from the command-line and this may be the simplest way to get started if the project has been well created.

See http://ant.apache.org/ for docs.

If you want to try this approach, install ant, cd to the directory with build.xml and issue

Eclipse can be told to build using an Ant script, but you can also use Ant itself.

build.xml file is an Ant(Apache) script. you can find more information on Ant & build.xml here

Any way to generate ant build.xml file automatically, The tool will create a build.xml in the given folder. Optionally, the second argument can be an exported .userlibraries file, from Eclipse, needed …

How to generate build.xml for a new java project?

I am learning about build.xml file for ant build. I have a simple «Hello World» project in Eclipse.

Is there any way to generate a build.xml file in Eclipse for this project?

Yes — click on File -> Export -> General -> Ant Buildfiles and specify the file name, project, etc.

I find that I’ve got a single generic Ant build.xml that I reuse again and again. It’s not something that has to be done from scratch every time.

If you’re learning Ant, what’s the point of using a generated build.xml?

        /production/$"/>   /test/$"/>  /WEB-INF/classes"/> /WEB-INF/lib"/> /reports"/> /junit"/> /testng"/>  "/>      "/> "/>        " property="outputExists"/> " includeEmptyDirs="true"/> " includeEmptyDirs="true"/> "/> "/> "/> "/> "/> "/> "/>  "/> -->          "/> -->           " format="frames"/>    "/> -->           

How to configure Eclipse XML formatting?, Window -> Preferences, then XML -> XML Files -> Editor. There is a search box above the preferences tree, very useful when you want to find where something …

Why wont eclipse generate build.xml

Im using e(fx)clipse and after following the steps outlined here http://code.makery.ch/java/javafx-8-tutorial-part7/ Nothing happens when you click «Generate ant build.xml». can anyone help here? If no one has a clue can someone help me manually get this done

build.fxbuild used by e(fx)clipse

This is the settings on the build.fxbuild

And I am using eclipse 4.4

!SESSION 2014-10-18 18:46:48.482 ----------------------------------------------- eclipse.buildId=4.4.0.I20140606-1215 java.version=1.8.0_20 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_NZ Command-line arguments: -os win32 -ws win32 -arch x86_64 !ENTRY org.eclipse.fx.ide.java6 4 0 2014-10-18 18:46:49.497 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: Could not resolve module: org.eclipse.fx.ide.java6 [221] Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version>=1.3)(!(version>=1.8)))" at org.eclipse.osgi.container.Module.start(Module.java:434) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) !ENTRY org.eclipse.e4.ui.workbench 1 0 2014-10-18 18:46:54.133 !MESSAGE Nothing to merge for "platform:/plugin/org.eclipse.e4.tools.emf.ui/fragment.e4xmi" !ENTRY org.eclipse.e4.ui.workbench 1 0 2014-10-18 18:46:54.137 !MESSAGE Nothing to merge for "platform:/plugin/org.eclipse.e4.tools.emf.ui/fragment.e4xmi" 

The log pops up with this error when I hit generate

I suppose I should note that I tried to create an exe with netbeans too but when run it would give me an «error in man class» but there’s nothing wrong with it when I run it through the IDE.

The problem was that the build.fxbuild file was corrupted. I’m not sure how it occurred but suffice to say the easiest fix is to get a new build.fxbuild file, either from creating a new project or copying from one that works (given that its actually just an XML file)

Eclipse — build.xml in Java project, 5 Answers Sorted by: 39 build.xml usually is an ant build script. It contains information necessary to build the project to produce the desired …

Источник

Apache Ant – быстрый старт

Apache Ant должен быть знаком каждому Java-программисту: это популярный инструмент сборки ПО (build tool), полностью написанный на Java. Ant использует сценарий, который является обычным XML-файлом. Несмотря на его Java-направленность, веб-разработчики тоже используют этот инструмент.

  1. Скачаем, установим и проверим.
  2. Напишем простой HelloWorld сценарий.
  3. Разберёмся с принципами работы и XML форматом сценария сборки.
  4. Узнаем минимально необходимый список заданий.
  5. Напишем сценарий для полного цикла сборки и тестирования учебного проекта.

1. Скачиваем, устанавливаем, проверяем

Linux: устанавливаем из репозитария командой вроде sudo apt-get install ant (замените apt-get на yum если необходимо). Важно: нам нужна версия не ниже 1.8.*. В репозитарии CentOS 6.8 версия 1.7.1, поэтому лучше использовать скрипт, описанный в предыдущей статье.

Windows: посещаем веб-сайт ant.apache.org, заходим в раздел Download/Binary Distributions и скачиваем архив apache-ant-1.10.1-bin.zip (возможно сейчас есть уже более свежая версия). Содержимое архива копируем в любой каталог, например в «C:\Program Files\Apache Ant». Затем добавляем путь к каталогу bin (C:\Program Files\Apache Ant\bin) в системную переменную Path.

Проверяем работоспособность, вызвав ant в командной строке:

Если аналогичное сообщение получено – всё в порядке.

2. Пишем HelloWorld сценарий

Создаём в домашнем каталоге подкаталог hello (в Linux это делает команда mkdir, в Windows – md) и сохраняем туда файл с именем build.xml, содержащий предложенный выше сценарий. Переходим в этот каталог и вызываем ant:

$ mkdir hello
$ cd hello
$ ant
Buildfile: /home/lamp/hello/build.xml

hello:
[echo] Hello, World!
BUILD SUCCESSFULL

Что произошло? Ant нашел файл сценария с именем по умолчанию (build.xml) и выполнил target c именем hello, также указанный по умолчанию в теге project с помощью атрибута default (обратите внимание что в теге project мы ещё указали имя проекта, используя атрибут name). Мы получим такой же результат, если при вызове ant укажем в качестве параметра hello:

3. Основные принципы работы

Сценарий сборки – обычный XML-файл. Текст открывается (и закрывается) тегом project, в котором можно указать имя проекта и цель по умолчанию. Далее он содержит определение целей (target), зависимостей (depends) и свойств (property). Простейший сценарий должен иметь хотя бы одну цель. В теге target мы описываем вызов одного или нескольких заданий (tasks). Для target можно задать имя с помощью атрибута name (name=«name_of_target»). Заданное имя становится командой для нашего сценария и вызвать соответствующий target можно так:

В target есть возможность указать зависимость с помощью атрибута depends. Зависимости связывают target’ы между собой. Например, есть target c именем “compile”, а есть – с именем “run”, зависимый от “compile”. И если мы захотим выполнить “run”, сначала выполнится “compile”.

4. Минимально необходимый список заданий (tasks)

Стандартная версия Ant содержит более 150 заданий (https://ant.apache.org/manual/tasklist.html). Нам пока потребуются только семь:

  • echo – вывод сообщений в консоль
  • mkdir – создание директорий
  • delete – удаление файлов и директорий
  • javac – компиляция Java–кода
  • java – запуск class и jar файлов
  • jar – создание jar файла
  • junit – запуск тестов

5. Сценарий для сборки и тестирования Java проекта

Ant предоставляет полную свободу в формировании структуры каталогов. Создаём в нашем каталоге hello подкаталог src для исходных текстов на Java:

И сохраняем туда файл HelloWorld.java следующего содержания:

А затем немного усложняем текст нашего сценария (build.xml):

Теперь сценарий содержит три target (команды): compile (компиляция файла(ов) .java), run (запуск файла .class), clean (удаление папок с результатами компиляции). При этом compile содержит два tasks – mkdir и javac. Обратите внимание на зависимость: target run предварительно вызовет compile. Кроме того run – это target по умолчанию для проекта.

Запускаем сценарий без параметров и видим результат работы Java программы: Hello, World!

Прямое указание имен каталогов не говорит о хорошем стиле. Особенно если имена в сценарии повторяются. Модифицируем build.xml, используя property (обратите внимание, как нам пригодилось имя проекта, заданное в project) и добавив пару комментариев:

      /classes"/>  "/> " destdir="$" includeAntRuntime="false"/> " classpath="$"/> "/> 

Теперь добавим в сценарий target package для формирования jar файла:

Перейдём к тестированию. Изменим код проекта (чтобы было что тестировать):

public class HelloWorld < public static void main(String[] args) < HelloWorld hello = new HelloWorld(); System.out.println(hello.sayHello()); >String sayHello() < return "Hello, World!"; >>

и добавим в каталог src файл/класс TestHello.java с простым тестом:

import static org.junit.Assert.assertEquals; import org.junit.Test; public class TestHello < @Test public void testHello() < HelloWorld hello = new HelloWorld(); assertEquals("Hello, World!", hello.sayHello()); >>

Используя информацию со страницы https://github.com/junit-team/junit4/wiki/getting-started скачиваем два файла, junit-4.12.jar и hamcrest-core-1.3.jar и копируем их в каталог нашего JDK/jre/lib/ext (такую команду копирования используем в CentOS 6.8):

$ java -cp build/classes org.junit.runner.JUnitCore TestHello
JUnit version 4.12
.
Time: 0,281
OK (1 test)

Добавляем в наш сценарий ещё один target – test:

и дополняем строку в target package (jar):

/$.jar" basedir="$" excludes="Test*.class">

Теперь к списку команд нашего сценария (compile, run, package, clean) добавилась test.
В заключение меняем код нашего проекта так, чтобы приветствие выводилось в отдельном графическом окне. Затем формируем jar файл и запускаем его двойным кликом мыши (у вас должно быть настроено выполнение jar файлов по двойному клику).

import javax.swing.*; import java.awt.*; public class HelloWorld extends JFrame < public static void main(String[] args) < new HelloWorld(); >HelloWorld() < setTitle(sayHello()); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(200, 200, 300, 200); JLabel label = new JLabel(sayHello(), SwingConstants.CENTER); label.setFont(new Font("", Font.BOLD, 24)); add(label); setVisible(true); >String sayHello() < return "Hello, World!"; >>

Слегка дополняем сценарий (в target run), дописав fork=«true» (запуск выполнения класса в другой виртуальной машине). В противном случае run не сработает (проверено экспериментально):

Выполняем команду формирования jar файла ($ ant package), открываем в проводнике файлов каталог ~/hello/build, находим там HelloWorld.jar, дважды кликаем по нему мышкой и получаем удовольствие от созерцания графического окошка с приветствием.

Источник

Оцените статью