Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Как "поженить" эклипсу с ant'ом?


Автор: sergejzr 23.6.2005, 23:03
Проблема у меня...

Есть проект там есть source folder, где сорсы мои лежат. Я хочу сделать jar из него. Ещё я хочу дибаггер использовать иногда.

По отдельности всё идёт запускаю свой main.java, прожект компилируется, приложение запускается, дибагется.
Компилированные классы сохраняются в

bin
|-n_project

Теперь я хочу jar. Есть build.xml указываю, откуда брать классы, всё ок. Но потом мне ант создаёт jar со структурой

mainfest
bin
| - n_project
|- классы


естественно, из такого jar'a запустить чего либо не возможно, там же bin приписан, а корневой package у меня n_project.

Наоборот можно тоже сделать. Сказать, чтобы ант писал классы сразу в n_project. Тогда он создаёт "нормальный" jar.

Вопрос... Разве не могут они в одно место писать? Есть ли возможность делать jar без анта нафиг?

Хочется удобства Borlanda smile Там нажал на кнопу и jar скомпилился и дебаг идёт одновременно.
И ещё. После того, как ант один раз скомпилил, "нормальным" способом ничего не идёт.

Хоть бы параллельно работали, что ли smile


Если нетрудно и у кого есть работающий proektik-пример: Эклипса+дибаг+jar с манифестом, выложите плиз... smile

Автор: batigoal 23.6.2005, 23:27
Есть вроде плагин для создания jar-архивов. Или интересует именно использование Ant?

Автор: sergejzr 23.6.2005, 23:54
Вообще Ant предпочитаемый, но не обязательный фактор. Плагин я вроде тоже нашёл, но он для того, чтобы собирать в кучу все нужные джары..

Автор: Souljah 24.6.2005, 10:24
на проекте правую кнопку - export/Jar file

не подойдет?


(сам не юзаю, имхо проще нормальный ant скрипт написать)

Автор: anonymouse 4.7.2005, 17:51
А ты уверен 4то ты все свойства у проекта правильно написал ?
Там достато4но прозра4но можно указать куда соурце куда классы куда манифест.
И насчет дебуга я не понял, какие проблемы ?

Автор: sergejzr 4.7.2005, 18:28
Проблема только в том, что Ант и Еслипса при компиляции кладут *.class в разные папки и настроить на одну не получается. В принципе это не страшно, так как они нужны только для дибагга, но всё равно неприятно, потому что приходится запоминать, надо ли перекомпилить эклипсой или антом..

Автор: Souljah 4.7.2005, 20:00
ant кладет *.class туда, куда вы ему скажете smile


у таска javac есть пропертя destdir

Автор: sergejzr 4.7.2005, 23:41
Цитата(Souljah @ 4.7.2005, 19:00)
ant кладет *.class туда, куда вы ему скажете

Не, не идёт, иначе бы я не писал.

Цитата(Souljah @ 4.7.2005, 19:00)
у таска javac есть пропертя destdir

Да, но эклипса потом не найдёт..

Автор: Gretchen 22.7.2005, 12:44
Место, куда кладутся классы при компиляции, можно указать в Eclipse, если вызвать окно Properties для проекта. Далее Java Build Path, там закладка Source и внизу стоит Default Output Folder. Там можно любой путь внутри проекта указать.

Автор: tux 23.7.2005, 02:55
Покажу как у меня все в Ant собирается, может поможет. Та же самая связка - Eclipse+Ant, никаких проблем ни с дебагом ни со сборкой.
Код

    <target name="init">
        <property environment="env" />
        <property file="ant.properties" />
        <property name="xml.dir" value="./src/xml" />
        <property name="class.dir" value="./bin" />
        <property name="java.src.dir" value="./src/java" />
        <property name="target.dir" value="./target" />
        <property name="jar.name" value="testing-student.jar" />
        <property name="jar.target" value="${target.dir}/${jar.name}" />
        <property name="java.home" value="${env.JAVA_HOME}" />
        <property name="lib.dir" value="lib" />
        
        <property name="hibernate.service" value="../hibernate" />

        <path id="hibernate.path">
            <fileset dir="${hibernate.home}">
                <include name="*.jar" />
            </fileset>
            <fileset dir="${hibernate.home}/lib">
                <include name="commons-collections*.jar" />
                <include name="log4j*.jar" />
                <include name="commons-logging*.jar" />
            </fileset>
            <fileset dir="../../web-app/lib">
                <include name="*.jar" />
            </fileset>
            <pathelement path="${hibernate.service}/bin"/>
        </path>

    </target>

    <target name="compile" depends="init">
        <javac destdir="${class.dir}" classpathref="hibernate.path" debug="on">
            <src path="${java.src.dir}" />
            <include name="**/*.java" />
        </javac>
    </target>

    <target name="pack-it" depends="init, compile">
        <delete file="${jar.target}" />
        <jar destfile="${jar.target}/">
            <fileset dir="${class.dir}" includes="**/*.class" />
            <fileset dir="${xml.dir}" includes="**/*.xml" />
        </jar>
    </target>


Кстати, output folder в Eclipse можно задать отдельный для каждой source folder. Если в приложении несколько модулей, это удобно.

smile P.S. А есть ли возможность сделать в форуме подсветку синтаксиса XML?

Автор: batigoal 23.7.2005, 17:47
Цитата(tux @ 23.7.2005, 03:55)
P.S. А есть ли возможность сделать в форуме подсветку синтаксиса XML?

На данном этапе - нет. А разве html-подсветка чем-то неудобна для XML?

Автор: sergejzr 23.7.2005, 20:22
Html задумывалась как подсветка XML(то есть она и есть). Называется так только по тому что не все знают про XML.

Автор: tux 24.7.2005, 05:12
Цитата
Html задумывалась как подсветка XML(то есть она и есть). Называется так только по тому что не все знают про XML.

Ясно, понятно. Просто подумал что XML может подсвечиваться криво.

Автор: Souljah 25.7.2005, 16:07
Цитата(tux @ 23.7.2005, 02:55)
Кстати, output folder в Eclipse можно задать отдельный для каждой source folder.



как?
не то, чтобы это было очень надо - просто интересно...
не могу найти эти настройки!

Автор: tux 1.8.2005, 02:30
Ходим в properties проекта, затем в Java Build Path, Source и здесь ставим галочку на Allow output folders for source folders. Теперь в каждом source folder появляется атрибут output folder.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)