Ant 2008
Ant2 Призначення: виконання повторюваних, як правило, рутинних завдань, пов'язаних із розробкою, розгортанням, виконанням проектів. Приклади можливих завдань-цілей (за змістом): –компіляція; –копіювання файлів (з урахуванням структури каталогів); –розгортання проекту; –etc. Приклади використання (запусків): –ant deploy –ant createTables loadData printData Завдання-цілі (та їх імена) визначають- ся у файлі build.xml Конкретні імена завдань
Ant3 Приклад запуску Ant ant deploy <project <target name="deploy" Файл build.xml
Ant4 Опис завдань (фрагмент build.xml ) - 1 <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> <target name="deploy" depends="build" description="Deploy application">
Ant5 Опис завдань (фрагмент build.xml ) - 2. (Використання з БД та технологією JDBC API) <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" print="true"> SELECT * FROM products; JDBC (Java DataBase Connectivity) SQL (Structured Query Language) Перелік завдань (target), пов'язаних із БД: –dropTables; –loadData; –printData; –clearData; –shutdownDb.
Ant6 Опис завдань (фрагмент build.xml ) - 3. (Використання з БД та технологією JDBC API) <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" src="db/load_data.sql"> INSERT INTO products (id, description, price) values(1, 'Lamp', 5.00); INSERT INTO products (id, description, price) values(2, 'Table', 75.00); INSERT INTO products (id, description, price) values(3, 'Chair', 22.00); Файл load_data.sql CREATE TABLE products ( id INTEGER NOT NULL PRIMARY KEY, description varchar(255), price decimal(15,2) ); CREATE INDEX products_description ON products(description); Файл create_products.sql для target “createTables”
Ant7 Файл build.xml (початковий фрагмент)... Для зручності в окремому файлі визначені властивості (properties) для налаштуван- ня на конкретні веб-сервер та СУБД
Ant8 Файл build.properties (налаштування на Tomcat 6, hsqldb ) # Ant properties for building the springapp1 appserver.home=c:/tomcat # for Tomcat 5 use $appserver.home}/server/lib # for Tomcat 6 use $appserver.home}/lib appserver.lib=${appserver.home}/lib deploy.path=${appserver.home}/webapps tomcat.manager.url= tomcat.manager.username=admin tomcat.manager.password= ##################### DB ########################## db.driver=org.hsqldb.jdbcDriver db.url=jdbc:hsqldb:hsql://localhost db.user=sa db.pw= driverClassName (hsqldb.jar)
Ant9 JDBC. Файл build.properties (переналаштування проекту на MySQL ) # Ant properties for building the springapp1... ##################### DB ########################## db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost/test db.user=root db.pw=root driverClassName (mysql-connector-java jar)
Ant10 Файл build.xml. Не мучайтесь, копіюйте! Build the application"/> Deploy application as directory"/> Deploy application as a WAR file"/> Install application in Tomcat"/> Reload application in Tomcat"/> Start Tomcat application"/> Stop Tomcat application"/> List Tomcat applications"/> <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> <target name="deploywar" depends="build" description="Deploy application as a WAR file"> <war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml"> <install url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${name}" war="${name}"/> <reload url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${name}"/> <start url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${name}"/> <stop url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${name}"/> <list url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}"/> <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" src="db/create_products.sql"> <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> DROP TABLE products; <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" src="db/load_data.sql"> <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue" print="true"> SELECT * FROM products; <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> DELETE FROM products; <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> SHUTDOWN; Не для перегляду, тільки для можливого копіювання! Цей файл (build.xml) майже без змін узято з документації до Spring Framework ( spring-framework with-docs.zip