Как извлечь основной класс из существующего проекта Java? - PullRequest
0 голосов
/ 23 января 2012

У меня большой веб-проект Struts1, в котором также используется Hibernate.

Один из наших пакетов:

com.company.examples.users.

Еще есть:

com.company.examples.orders.

Внутри каждого из этих пакетов есть файл main.java, который используется для тестирования (фактически запускает файл из Netbeans).

Так что я могу щелкнуть правой кнопкой мыши по основным файлам и сказать, чтобы он запускался, и вывод отобразится в окне журнала. Это хорошо. Но я хочу иметь возможность извлекать их в реальные файлы JAR, чтобы их можно было запускать по отдельности.

Эти файлы также используют весь более крупный проект. Много пакетов и т. Д.

Как я могу это сделать?

1 Ответ

1 голос
/ 23 января 2012

Вот быстрый и грязный способ.Создайте в ней папку и cd.

>md test
>cd test

Скопируйте в нее файл WAR, файлы prepare-tests.bat и make-classpath.bat.

Где prepare-tests.bat:

md unpacked
cd unpacked
jar xvf ..\%1
cd WEB-INF\classes
jar cvf ..\..\..\classes.jar *
cd ..\..\..
call make-classpath

И make-classpath.bat - это:

@echo off
<nul set /p =set CLASSPATH=.;> set-classpath.bat
<nul set /p =classes.jar;>> set-classpath.bat
for /f %%a IN ('dir unpacked\WEB-INF\lib *.jar /s/b') do <nul set /p =%%a;>> set-classpath.bat

По сути, эти шаги распаковывают WAR, разбивают классы WAR (если есть) и создают путь к классам, который указывает на эти классыплюс все файлы JAR в вашей папке WEB-INF/lib.

Затем вы можете запускать тесты (из папки test, которую вы создали):

>prepare-tests my-war.war
>set-classpath
>java com.foo.bar.MyTest

Вы были бы намного лучшене используйте такие инструменты, как Maven и JUnit, чтобы автоматизировать / облегчить тестирование.

...