Модераторы: Akella, bartram
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Eclipse+ant. Условная сборка 
V
    Опции темы
ksnk
Дата 25.1.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Чего-то я туплю. 

Использую Eclipce. Ну и ANT для сборки проекта. Понадобилось внести в сборщик какую-то логику.
К примеру, если файла нету - его создать. Сейчас пока наделал список задач по созданию того или иного компонента и вручную его дергаю. Думаю, что что-то я делаю не то smile

Должно бы получится чего-то такое - один таргет, который в зависимости от наличия файла, даты файла, фазы луны и настроения шефа сделает или не сделает некий список задач.

Итого - чего у меня есть:

Вот пара задач на создание каких-то файлов

Создача сборного javascript'а.
Код

    <target name="create_site_js">
    <echo append="false" file="tmp1.tmp">$(function(){    
</echo>
        <echo append="false" file="tmp2.tmp">
})
</echo>
        <concat destfile="js\site.js" eol="crlf" force="no">
            <filelist dir="." files="tmp1.tmp"/>
            <filelist dir="${common_dir}/js/site.src" files="storepos.js"/>
            <filelist dir="${common_dir}/js/site.src" files="ajaxdebug.js"/>
            <filelist dir="${common_dir}/js/site.src" files="ajaxform.js"/>
            <filelist dir="${common_dir}/js/site.src" files="ajaxlink.js"/>
            <filelist dir="${common_dir}/js/site.src" files="ajaxpage.js"/>
            <filelist dir="." files="tmp2.tmp"/>
            <filelist dir="${common_dir}/js/site.src" files="cookie.js"/>
            <filelist dir="${common_dir}/js/site.src" files="chkImg.js"/>
            <filelist dir="${common_dir}/js/site.src" files="windowO.js"/>
            <filelist dir="${common_dir}/js/site.src" files="menu.js"/>
        </concat>
        <delete file="tmp1.tmp"/>
        <delete file="tmp2.tmp"/>
    </target>    


Ее надо запускать только в случае, если файлы, используемые для сборки поменялись.  Как это написать, чтобы список этих файлов держать в одном месте?

Создача затычки для файла конфигурации.
Код

<target name="create_config" >
    <echo append="false" file="${test_dir}/engine/config.php"><![CDATA[<?php]]></echo>
    <echo append="true" file="${test_dir}/engine/config.php">    
        define('TAB_PREF','${dir}'); // префикс базы данных
        $the_host="localhost";
        $the_pass="";
        $the_login="root";
        $the_db="ns";
</echo>
        <echo append="true" file="${test_dir}/engine/hosts.php"><![CDATA[?>]]></echo>
</target>

Ее надо запускать только если файла конфигурации нету...

С документацией по ANT'у я, вроде, знаком, однако чего-то в этой жизни так и не догнал...

Добавлено через 6 минут и 55 секунд
P.S. А тут, случайно, более подходящей конференции нету? Там где люди в ANT не просто мануальные примеры гоняют, а какую-то навороченную логику?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 25.1.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Со второй задачей кое-как справился
Код

        <condition property="config.exists">
            <available file="${test_dir}/engine/config.php"/>
        </condition>
        <antcall target="create_config"/>

правда "логику" пришлось вытащить аж в таргет "create_config"

Код

<target name="create_config" unless="config.exists">
    ...

Все равно как-то коряво... 



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
LSD
Дата 26.1.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 20
Всего: 538



Чой-то я не понял, в чем вопрос. Есть тот же Ant-Contrib Tasks где есть условный оператор и синтаксис поприятней:
Код
<target name="DistributeJavaDocs">
  <if>
    <equals arg1="${skipJavaDocs}" arg2="true" />
    
    <then>
      <echo message="Skipping Javadoc section" />
    </then>
    
    <else>
      <mkdir dir="${dir.build.javadocs}"/>
      <property name="javadocs.file" value="${dir.dist.javadocs}/javadocs.tar"/>
      <mkdir dir="${dir.dist.javadocs}"/>
      <touch file="${javadocs.file}"/>
      <exec executable="${svn.command}" failifexecutionfails="true" logerror="true" >
        <arg value="add"/>
        <arg value="${dir.dist.javadocs}"/>
        <arg value="${javadocs.file}"/>
      </exec>
      <javadoc destdir="${dir.build.javadocs}" 
               sourcepath="${dir.src}" 
               verbose="false" 
               failonerror="false" 
               package="yes" 
               packagenames="com.db.*"
               windowtitle="${proj.name} API"/>

      <tar destfile="${javadocs.file}" basedir="${dir.build.javadocs}" />
    </else>
    
  </if>
</target>



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ksnk
Дата 28.1.2009, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



LSD, То есть это уже не "голый" Ant, а чего-то еще плюс... ?

Хм... посмотрим, пожуем ...

Спасибо!

Добавлено через 11 минут и 1 секунду
А собственно ant-contrib-0.3.jar где нормальные люди берут? Ну, те нормальные люди, которые пр Java слыхом не слыхивали и Eclips'ом, преимущественно гвозди забивают...
По ссылке download мне предложили укачать охрененно мудрый архив с офигенно большим количеством xml и прочей фигни... Куда мне ее запихать?  smile

Добавлено через 13 минут и 11 секунд
Торможу... jar нашелся на сайте...  smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 28.1.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Заработало! остался только дурацкий вопрос  - как бы вставить этот jar в сборку/настройку ant, чтобы не приходилось его каждый раз указывать в сборщике?

Добавлено через 1 минуту и 31 секунду
В смысле, не писать странную конструкцию
Код

    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
      <classpath>
        <pathelement location="D:\Program Files\eclipse\plugins\ant-contrib-1.0b3.jar" />
      </classpath>
    </taskdef>

? 
Есть, же какие-то runtime-настройки Anta в Eclipse...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 28.1.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Хотя classpath поменял и писать придется всего одну строку... А совсем ничего не писать разработчики чего-йто не советуют...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
LSD
Дата 29.1.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 20
Всего: 538



Найди каталог: eclipse\plugins\org.apache.ant_1.7.0.v200803061910\lib (название может немного отличаться). И положи туда ant-contrib.jar. И после этого можно будет ограничиться:
Код

<taskdef resource="net/sf/antcontrib/antlib.xml"/>



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ksnk
Дата 29.1.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



LSD, Ну, я залез в Window->Preferences->Ant->Runtime->Classpath->AntHomeEntries. Там "addJar" и добавил  ant-contrib.jar. Теперь тоже пишу одну строчку. А вот уже ее, вроде, никак не убить ... 
Ну да и ладно.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программное обеспечение"
Deface
Akella

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, Akella, bartram.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.