<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF92%3AHardcore_Linux</id>
		<title>LXF92:Hardcore Linux - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF92%3AHardcore_Linux"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;action=history"/>
		<updated>2026-05-13T20:27:12Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=6489&amp;oldid=prev</id>
		<title>Yaleks в 09:39, 7 января 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=6489&amp;oldid=prev"/>
				<updated>2009-01-07T09:39:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 09:39, 7 января 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 491:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 491:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Hardcore Linux]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Hardcore Linux]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Скотт &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Дугласн&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:Скотт &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Дуглас&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=6481&amp;oldid=prev</id>
		<title>Yaleks: категория</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=6481&amp;oldid=prev"/>
				<updated>2009-01-07T09:26:14Z</updated>
		
		<summary type="html">&lt;p&gt;категория&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 09:26, 7 января 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 489:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 489:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''' ''Linguine Maps'' нарисует представление файла сборки Java.'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''' ''Linguine Maps'' нарисует представление файла сборки Java.'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Hardcore Linux]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Скотт Дугласн]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5561&amp;oldid=prev</id>
		<title>Crazy Rebel: оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5561&amp;oldid=prev"/>
				<updated>2008-11-24T08:33:56Z</updated>
		
		<summary type="html">&lt;p&gt;оформление&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;amp;diff=5561&amp;amp;oldid=5431&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5431&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Я не знаю слова «помощь» */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5431&amp;oldid=prev"/>
				<updated>2008-11-19T06:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Я не знаю слова «помощь»&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 06:08, 19 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 433:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 433:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''default''' у атрибута '''project''':&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''default''' у атрибута '''project''':&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;coide&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;lt;project name=”id3” default=”help” basedir=”.”&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;lt;project name=”id3” default=”help” basedir=”.”&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5430&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Упакован и отгружен */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5430&amp;oldid=prev"/>
				<updated>2008-11-19T06:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Упакован и отгружен&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 06:08, 19 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 343:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 343:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;припас задачу, способную это сделать, и называется она '''Scp'''. Однако,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;припас задачу, способную это сделать, и называется она '''Scp'''. Однако,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;так как это одна из опциональных задач ''Ant'', нужно добавить внешние&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;так как это одна из опциональных задач ''Ant'', нужно добавить внешние&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;библиотеки для ее активации. Расположение внешних библиотек описано на странице библиотек зависимостей в руководстве ''Ant''; можно видеть, что для задачи ''Scp требуется файл '''jsch.jar''' со страницы http://www.jcraft.com/jsch/index.html. Скачав библиотечный файл, скопируйте его в каталог библиотек ''Ant'' ('''ANT_HOME/lib''').&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;библиотеки для ее активации. Расположение внешних библиотек описано на странице библиотек зависимостей в руководстве ''Ant''; можно видеть, что для задачи &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;''Scp&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;требуется файл '''jsch.jar''' со страницы http://www.jcraft.com/jsch/index.html. Скачав библиотечный файл, скопируйте его в каталог библиотек ''Ant'' ('''ANT_HOME/lib''').&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Далее нам необходимо добавить несколько переменных в файл&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Далее нам необходимо добавить несколько переменных в файл&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5429&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Муравей на хозяйстве */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5429&amp;oldid=prev"/>
				<updated>2008-11-19T06:07:31Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Муравей на хозяйстве&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 06:07, 19 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 260:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 260:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Последний шаг состоит в создании файла манифеста '''JAR''', с парой&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Последний шаг состоит в создании файла манифеста '''JAR''', с парой&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;атрибутов, которые помогут Java узнать, что делать с JAR-файлом. ''Ant''-задача '''Jar'' содержит атрибут '''manifest''', позволяющий их определить.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;атрибутов, которые помогут Java узнать, что делать с JAR-файлом. ''Ant''-задача '''Jar&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;'' содержит атрибут '''manifest''', позволяющий их определить.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5428&amp;oldid=prev</id>
		<title>Crazy Rebel в 06:06, 19 ноября 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5428&amp;oldid=prev"/>
				<updated>2008-11-19T06:06:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;amp;diff=5428&amp;amp;oldid=5426&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5426&amp;oldid=prev</id>
		<title>Crazy Rebel: Новая: Категория:Учебники  : '''Hardcore Linux''' Проверьте себя в проектах для продвинутых пользователей  ==Ant: Упро...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:Hardcore_Linux&amp;diff=5426&amp;oldid=prev"/>
				<updated>2008-11-19T05:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: &lt;a href=&quot;/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA%D0%B8&quot; title=&quot;Категория:Учебники&quot;&gt;Категория:Учебники&lt;/a&gt;  : &amp;#039;&amp;#039;&amp;#039;Hardcore Linux&amp;#039;&amp;#039;&amp;#039; Проверьте себя в проектах для продвинутых пользователей  ==Ant: Упро...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Учебники]]&lt;br /&gt;
&lt;br /&gt;
: '''Hardcore Linux''' Проверьте себя в проектах для продвинутых пользователей&lt;br /&gt;
&lt;br /&gt;
==Ant: Упростим Java-проекты==&lt;br /&gt;
&lt;br /&gt;
: Если вы используете Java, то без ''Ant'' вам не обойтись. '''Скотт Дуглас''' покажет, как упростить дистрибуцию и облегчить процесс Java-разработки.&lt;br /&gt;
&lt;br /&gt;
Если вы используете Java не только для запуска ''Azureus'', то,&lt;br /&gt;
скорее всего, встречались с ''Apache Ant''. Возможно, вы использовали его для компиляции скачанного Java-пакета или писали&lt;br /&gt;
с его помощью файл сборки для ваших собственных проектов. ''Ant''&lt;br /&gt;
['''англ. муравей, – прим. пер.''']. стал инструментом де-факто для сборки&lt;br /&gt;
всего на Java. Он берет на себя все труды по компиляции Java-проектов, и при правильном использовании управляет путями к классам и библиотеками.&lt;br /&gt;
&lt;br /&gt;
Однако ''Ant'' умеет не только компилировать: он включает множество встроенных инструкций (известных как задачи), позволяющих легко управлять вашим Java-проектом. Одной из примечательных черт ''Ant''&lt;br /&gt;
является его способ упростить процесс сборки, разбивая каждую стадию на составные подзадачи, которые потом группируются для создания файла сборки проекта.&lt;br /&gt;
&lt;br /&gt;
На этом уроке мы рассмотрим и выполним некоторые задачи, но&lt;br /&gt;
сначала нам надо удостовериться, что ваш простой файл проекта правильно структурирован: легче будет добавлять новые задачи.&lt;br /&gt;
&lt;br /&gt;
===Мой первый файл проекта===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;project name=”id3” basedir=”.”&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;&lt;br /&gt;
 Build file for id3 project&lt;br /&gt;
  &amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Properties --&amp;gt;&lt;br /&gt;
  &amp;lt;property name=”src” value=”/home/art/projects/id3/src”/&amp;gt;&lt;br /&gt;
  &amp;lt;property name=”libs” value=”/home/art/projects/id3/libs”/&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Classpath --&amp;gt;&lt;br /&gt;
 &amp;lt;path id=”base.path”&amp;gt;&lt;br /&gt;
 &amp;lt;pathelement path=”${classpath}”/&amp;gt;&lt;br /&gt;
 &amp;lt;fileset dir=”${libs}”&amp;gt;&lt;br /&gt;
 &amp;lt;include name=”**/*.jar”/&amp;gt;&lt;br /&gt;
 &amp;lt;/fileset&amp;gt;&lt;br /&gt;
 &amp;lt;/path&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Compile --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”compile” description=”compile the source code”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Compiling source&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;javac classpathref=”base.path”&lt;br /&gt;
 srcdir=”${src}”&amp;gt;&lt;br /&gt;
 &amp;lt;include name=”org/**”/&amp;gt;&lt;br /&gt;
 &amp;lt;/javac&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
 &amp;lt;/project&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это довольно стандартный файл сборки ''Ant''. Он поможет нам с компиляцией проекта и с расположением классов и библиотек, но мало&lt;br /&gt;
с чем еще. И такая работа, конечно, пригодится, но почему бы файл&lt;br /&gt;
не улучшить? Для начала неплохо создать свойства вверху файла и&lt;br /&gt;
обращаться к ним по имени из задач (например, так: '''${имяСвойства}''').&lt;br /&gt;
Однако это не очень переносимый вариант: что если мы хотим собрать&lt;br /&gt;
наш проект на другой системе или даже просто в другом каталоге?&lt;br /&gt;
&lt;br /&gt;
===Переносимые свойства===&lt;br /&gt;
&lt;br /&gt;
Вот что нам надо сделать: сохранить все свойства, относящиеся к&lt;br /&gt;
путям, в отдельном файле и просто указать ''Ant'', чтобы он читал их из&lt;br /&gt;
этого файла. Первый шаг к достижению этого – замена двух строк,&lt;br /&gt;
находящихся в разделе Properties, на одну следующую:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Properties --&amp;gt;&lt;br /&gt;
 &amp;lt;property file=”local.properties”/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для хранения наших свойств мы создали файл с именем '''local.properties''' в том же каталоге, что и наш файл сборки, и поместили в него все свойства, которые могут измениться. Это просто текстовый&lt;br /&gt;
файл, хранящий пары вида '''Свойство=Значение'''; строки, начинающиеся&lt;br /&gt;
с '''#''', ''Ant'' игнорирует.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Локальный файл свойств&lt;br /&gt;
 # Содержит каталоги для сборки&lt;br /&gt;
 src=/home/art/projects/id3/src&lt;br /&gt;
 build=/home/art/projects/id3/build&lt;br /&gt;
 libs=/home/art/projects/id3/libs&lt;br /&gt;
 dist=/home/art/projects/id3/dist&lt;br /&gt;
 etc=/home/art/projects/id3/etc&lt;br /&gt;
 mainclass=org.sturgeon.Id3Renamer&lt;br /&gt;
 jarfile=id3.jar&lt;br /&gt;
 debug=true&lt;br /&gt;
 fork=true&lt;br /&gt;
 source=1.5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поскольку наша задача «компиляции» уже использовала свойства, записанные в начале исходного файла, то для обращения к ним никаких изменений проводить не требуется. Однако, так же, как мы установили локальные пути, можно добавить свойства для других вещей.&lt;br /&gt;
&lt;br /&gt;
Здесь, '''fork''' указывает ''Ant'', использовать ли компилятор JDK внешним&lt;br /&gt;
образом, source задает требуемый уровень исходного кода, а '''debug'''&lt;br /&gt;
указывает ''Ant'', следует ли включать отладочную информацию в файлы классов.&lt;br /&gt;
&lt;br /&gt;
Использование внешнего файла свойств означает, что мы можем&lt;br /&gt;
использовать тот же файл сборки на любых платформах без изменений – только для каждой установки надо предоставить файл '''local.properties'''. Вот задача компиляции с включенными новыми флагами&lt;br /&gt;
свойств.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Compile --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”compile” description=”compile the source code”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Compiling source&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;javac srcdir=”${src}”&lt;br /&gt;
 destdir=”${build}”&lt;br /&gt;
 classpathref=”base.path”&lt;br /&gt;
 fork=”${fork}”&lt;br /&gt;
 debug=”${debug}”&lt;br /&gt;
 source=”${source}”/&amp;gt;&lt;br /&gt;
 &amp;lt;include name=”org/**”/&amp;gt;&lt;br /&gt;
 &amp;lt;/javac&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь мы можем добавить задачу для тестирования проекта –&lt;br /&gt;
почти так же, как мы тестировали проект компиляции. Единственная&lt;br /&gt;
существенная разница – надо будет изменить '''classpath''' так, чтобы он&lt;br /&gt;
включал каталог сборки. Это не вопрос: мы уже определили базовый&lt;br /&gt;
путь для проекта с помощью атрибута path. К нему можно обращаться внутри атрибута '''classpath''', надо только добавить строчку каталога&lt;br /&gt;
сборки. Стоит также упомянуть здесь использование '''fork''': оно сообщает ''Ant'', исполнять ли код в другой JVM (а не в той, в которой работает сам ''Ant''). Если вы собираетесь посылать аргументы командной строки&lt;br /&gt;
в JVM, установите его в '''Yes'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Test --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”test” description=”test run the project”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Running project&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;java classname=”${mainclass}”&lt;br /&gt;
 fork=”${fork}”&lt;br /&gt;
 dir=”${build}”&amp;gt;&lt;br /&gt;
 &amp;lt;classpath&amp;gt;&lt;br /&gt;
 &amp;lt;pathelement location=”${build}”/&amp;gt;&lt;br /&gt;
 &amp;lt;path refid=”base.path”/&amp;gt;&lt;br /&gt;
 &amp;lt;/classpath&amp;gt;&lt;br /&gt;
 &amp;lt;/java&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Муравей на хозяйстве===&lt;br /&gt;
&lt;br /&gt;
Прежде чем упаковать наш код в JAR-файл, добавим-ка пару задач&lt;br /&gt;
для упрощения структуры проекта. К сожалению, ''Ant'' не станет пылесосить за вас квартиру (зато если у вас есть ''Roomba'' ['''Roomba – роботпылесос, см. на сайте http://en.wikipedia.org/wiki/Roomba, – прим. пер.'''],&lt;br /&gt;
вы можете удумать умные задачи для его управления), но зато создаст&lt;br /&gt;
нам структуру каталогов. Для начала припасем задачу '''Init''' – с ней более&lt;br /&gt;
или менее ясно: все, что она делает – создает каталог '''build''' (для размещения файлов классов) и '''dist''' (где разместится JAR-файл). Далее&lt;br /&gt;
предусмотрим задачу '''Clean''', чтобы удалить ранее созданные каталоги.&lt;br /&gt;
Задача '''Clean''' полезна для сборки во время различных стадий проекта,&lt;br /&gt;
так как позволяет «начать с нуля» в любой момент. Добавьте эти две&lt;br /&gt;
задачи в файл сборки, и мы перейдем к задаче '''Jar'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
    |Заголовок=Скорая помощь&lt;br /&gt;
    |Содержание=&lt;br /&gt;
Вы можете запустить более чем одну задачу ''Ant'', просто указав их одна за одной в командной строке. Например, чтобы очистить проект и затем упаковать его, используйте команду ''ant clean jar''.&lt;br /&gt;
    |Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Init --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”init” description=”initialise directories”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Initialising directories&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;mkdir dir=”${build}”/&amp;gt;&lt;br /&gt;
 &amp;lt;mkdir dir=”${dist}”/&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Clean --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”clean” description=”remove directories”&amp;gt;&lt;br /&gt;
 &amp;lt;delete dir=”${build}”/&amp;gt;&lt;br /&gt;
 &amp;lt;delete dir=”${dist}”/&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная задача '''Jar''' очевидна: здесь указываются свойства для&lt;br /&gt;
каталога вывода, а также файлы, которые надо включить. Однако мы&lt;br /&gt;
введем в нее зависимость и потребуем, чтобы сперва выполнялась&lt;br /&gt;
задача компиляции.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Jar --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”jar” description=”jar up the project”&lt;br /&gt;
 depends=”compile”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Jarring the project&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;jar destfile=”${dist}/${jarfile}” basedir=”.”&amp;gt;&lt;br /&gt;
 &amp;lt;fileset dir=”${build}” includes=”**/*.class”/&amp;gt;&lt;br /&gt;
 &amp;lt;/jar&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь мы можем запустить наш проект прямо из JAR-файла –&lt;br /&gt;
осталось указать пути к классам и удостовериться, что мы имеем все&lt;br /&gt;
необходимые библиотеки. Еще полезнее будет JAR-файла, запускаемый отовсюду: тогда всего одним файлом мы предоставим возмож-&lt;br /&gt;
ность запуска нашего проекта кому захотим.&lt;br /&gt;
&lt;br /&gt;
Прежде чем создавать JAR-файл-всезнайку, необходимо раздобыть все файлы, которые мы собираемся в нем хранить, и поместить&lt;br /&gt;
их в тот же каталог: это проще, чем писать Jar-задачу для копирования&lt;br /&gt;
всех файлов из разных мест. Здесь мы используем каталог '''build''' для&lt;br /&gt;
хранения файлов, а каталог '''dist''' для хранения завершенного JAR-файла. Нижеследующая задача '''ResrcCopy''' копирует содержимое каталогов '''etc''' и '''src''' в каталог '''build''', который будет включен в JAR-файл. Каталоги&lt;br /&gt;
содержат файлы свойств проекта и его исходный код.&lt;br /&gt;
&lt;br /&gt;
Использование атрибута '''fileset dir''' во втором элементе copy означает, что мы копируем весь каталог и его содержимое. Это важно, так как позволяет установить верную структуру внутри JAR-файла.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;!-- ResrcCopy --&amp;gt;&lt;br /&gt;
  &amp;lt;target name=”copyrsrc” description=”копируем ресурсы для файла jar”&amp;gt;&lt;br /&gt;
  &amp;lt;echo&amp;gt;Copying resource files for jar&amp;lt;/echo&amp;gt;&lt;br /&gt;
  &amp;lt;copy todir=”${build}/etc”&amp;gt;&lt;br /&gt;
  &amp;lt;fileset dir=”${etc}”/&amp;gt;&lt;br /&gt;
  &amp;lt;/copy&amp;gt;&lt;br /&gt;
  &amp;lt;copy todir=”${build}/src”&amp;gt;&lt;br /&gt;
  &amp;lt;fileset dir=”${src}”/&amp;gt;&lt;br /&gt;
  &amp;lt;/copy&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нам необходимо указать задаче '''Jar''', чтобы мы хотим включить эти новые файлы. Для простоты ссылок и для ясности создадим&lt;br /&gt;
новый атрибут '''patternset'''. Его структура похожа на структуру атрибута&lt;br /&gt;
'''path''', и включает символы подстановки для типов файлов, которые мы&lt;br /&gt;
хотим вставить в результирующий JAR-файл.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Jar resource files --&amp;gt;&lt;br /&gt;
  &amp;lt;patternset id=”jar.resources”&amp;gt;&lt;br /&gt;
  &amp;lt;include name=”**/*.class”/&amp;gt;&lt;br /&gt;
  &amp;lt;include name=”**/*.properties”/&amp;gt;&lt;br /&gt;
  &amp;lt;include name=”**/*.java”/&amp;gt;&lt;br /&gt;
  &amp;lt;/patternset&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно внести поправки в задачу '''Jar''' и сообщить, что хотим&lt;br /&gt;
включить эти файлы. Вот первая часть:&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
    |Заголовок=Скорая помощь&lt;br /&gt;
    |Содержание=''Eclipse'' хорошо интегрирован с ''Ant''. Чтобы собрать Java проект ''Eclipse'' с помощью файла сборки ''Ant'', создайте новый проект и выберите '''Create Java Project From Existing Ant Buildfile'''. Создастся путь к классам&lt;br /&gt;
внутри ''Eclipse'', и в ваш проект поместятся ваши библиотеки и исходный код. Вы можете также запускать задачи, описанные в файле сборки, прямо из ''Eclipse''.&lt;br /&gt;
    |Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Jar --&amp;gt;&lt;br /&gt;
  &amp;lt;target name=”jar” description=”jar up the project”&lt;br /&gt;
  depends=”compile, copyrsrc”&amp;gt;&lt;br /&gt;
  &amp;lt;echo&amp;gt;Jarring the project&amp;lt;/echo&amp;gt;&lt;br /&gt;
  &amp;lt;jar destfile=”${dist}/${jarfile}” basedir=”${build}”&amp;gt;&lt;br /&gt;
  &amp;lt;patternset refid=”jar.resources”/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы просто изменили атрибут '''fileset''' задачи '''Jar''', чтобы он&lt;br /&gt;
обращался к нашему набору шаблонов. Итого, у нас есть JAR-файл,&lt;br /&gt;
включающий классы, исходный код и файлы свойств нашего проекта. Но кое-чего не хватает. Одной из причин, по которой мы задумали&lt;br /&gt;
сделать JAR-файл, была возможность запуска всего проекта из одного&lt;br /&gt;
файла, без дополнительных библиотек, и здесь возникает небольшая&lt;br /&gt;
проблема. Мы могли бы включить библиотечные JAR-файлы в гото-&lt;br /&gt;
вый '''patternset''', и они отлично бы разместились внутри нашего JAR-&lt;br /&gt;
файла. Однако Java не позволяет обращаться ко вложенным JAR-файлам. Значит, библиотечные JAR-файлы в определение путей классов&lt;br /&gt;
нашего JAR-проекта включать нельзя – придется распаковать библиотечные JAR-файлы, затем упаковать заново распакованные классы и их структуру каталогов в наш собственный JAR-файл. Делать это вручную прямо-таки мучительно, и вдобавок во время разработки довольно часто создается другой, новый JAR-файл проекта. Тут-то и приходит на&lt;br /&gt;
помощь ''Ant'': с помощью одного атрибута он может позаботиться для&lt;br /&gt;
нас обо всем. Вот магическая строка:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;zipgroupfileset dir=”${libs}” includes=”*.jar”/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как часть задачи '''Jar''', эта строка велит ''Ant'' включить содержимое&lt;br /&gt;
всех JAR-файлов в каталог '''libs''' собственного JAR-файла. Просто, но&lt;br /&gt;
эффективно.&lt;br /&gt;
&lt;br /&gt;
Последний шаг состоит в создании файла манифеста '''JAR''', с парой&lt;br /&gt;
атрибутов, которые помогут Java узнать, что делать с JAR-файлом. ''Ant''-задача '''Jar'' содержит атрибут '''manifest''', позволяющий их определить.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;manifest&amp;gt;&lt;br /&gt;
 &amp;lt;attribute name=”Main-Class” value=”${mainclass}”/&amp;gt;&lt;br /&gt;
 &amp;lt;attribute name=”Class-Path” value=”.”/&amp;gt;&lt;br /&gt;
 &amp;lt;/manifest&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы можем определить главный класс, выполняемый при&lt;br /&gt;
запуске JAR-файла (''java -jar &amp;lt;jar_архив&amp;gt;''), и путь к классам, которые&lt;br /&gt;
JAR-файл должен использовать. Осталось только закрыть Jar-задачу&lt;br /&gt;
и закончить цель:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;/jar&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь у нас есть JAR-файл, который может запустить любой обладатель JVM – в некоторых операционных системах это достигается&lt;br /&gt;
двумя щелчками на нем.&lt;br /&gt;
&lt;br /&gt;
===JavaDoc стоит тысячи слов===&lt;br /&gt;
&lt;br /&gt;
Любой проект, который мы собираемся сделать открытым, должен&lt;br /&gt;
иметь включенную документацию Javadoc. Она позволит будущему&lt;br /&gt;
пользователю просмотреть API и понять, как все работает. Ant, разу-&lt;br /&gt;
меется, имеет задачу Javadoc специально для этого.&lt;br /&gt;
    Вот довольно простая реализация задачи Javadoc:&lt;br /&gt;
 &amp;lt;!-- Javadoc --&amp;gt;&lt;br /&gt;
 &amp;lt;target name=”javadoc” description=”create javadocs for the project”&amp;gt;&lt;br /&gt;
 &amp;lt;echo&amp;gt;Creating JavaDoc for project&amp;lt;/echo&amp;gt;&lt;br /&gt;
 &amp;lt;javadoc sourcepath=”${src}”&lt;br /&gt;
 packagenames=”org.sturgeon.*”&lt;br /&gt;
 destdir=”${docs}”&amp;gt;&lt;br /&gt;
 &amp;lt;/javadoc&amp;gt;&lt;br /&gt;
 &amp;lt;/target&amp;gt;&lt;br /&gt;
    Задача указывает Ant создать Javadoc-документацию в каталоге&lt;br /&gt;
docs для исходного кода, расположенного в каталоге src, для паке-&lt;br /&gt;
тов, располагающихся ниже org.sturgeon (org.sturgeon.id3, например).&lt;br /&gt;
Нужно добавить этот новый каталог docs в нашу задачу Init:&lt;br /&gt;
 &amp;lt;mkdir dir=”${docs}”/&amp;gt;&lt;br /&gt;
    и задачу Clean:&lt;br /&gt;
 &amp;lt;delete dir=”${docs}”/&amp;gt;&lt;br /&gt;
    Нужно также включить документацию в наш JAR-файл, так что при-&lt;br /&gt;
пишем пару строк в наш набор шаблонов jar.resources, чтобы предус-&lt;br /&gt;
мотреть HTML-файлы Javadoc:&lt;br /&gt;
 &amp;lt;include name=”**/*.html”/&amp;gt;&lt;br /&gt;
 &amp;lt;include name=”**/*.gif”/&amp;gt;&lt;br /&gt;
    Чтобы скопировать комплект документации в каталог сборки,&lt;br /&gt;
включаемый в JAR-файл, надо добавить еще один атрибут copy в&lt;br /&gt;
задачу ResrcCopy:&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>