2012-01-23 2 views
0

나는 또한 Hibernate를 사용하는 커다란 Struts1 웹 프로젝트를 가지고있다. 우리의 패키지기존 Java 프로젝트에서 기본 클래스를 추출하려면 어떻게합니까?

하나는 :

com.company.examples.users.

또 다른입니다

com.company.examples.orders.

각 패키지에는 테스트 용으로 사용되는 main.java 파일 (실제로는 Netbeans에서 파일을 실행 함)이 있습니다.

메인 파일을 마우스 오른쪽 버튼으로 클릭하고 실행하도록 알려 주면 출력이 로그 창에 표시됩니다. 괜찮습니다. 하지만 개별 JAR 파일을 추출하여 개별적으로 실행할 수 있기를 원합니다.

또한이 파일들은 더 큰 전체 프로젝트에 의존합니다. 다양한 패키지 등

어떻게하면됩니까?

+0

병을 만드는 방법을 묻는 질문이 있으십니까? jar 명령을 사용하는 것은 어떻습니까? –

+0

글쎄, 나는 자바 (C#/Ruby 개발자)에게 새로운 편이다. 그래서 나는 그렇다고 생각한다. 우리 웹 서버에 배포 할 방대한 WAR 파일을 만들 수 있지만 그 일부 (main.java 클래스)를 별도의 JAR 파일로 추출해야합니다. 감사합니다. – cbmeeks

+0

main.java 클래스는 다른 클래스를 테스트하는 데 사용됩니다. 그래서 그들은 아마 다른 모든 수업에 의존합니다. 모든 클래스를 포함하는 단일 jar 파일을 작성해야합니다. Java의 작동 방식을 아는 조직원이 있습니까? war 파일을 생성하기위한 빌드 프로세스가 있어야하며이 빌드 프로세스를 업데이트하여 jar 파일을 생성해야합니다. –

답변

1

다음은 빠르고 더러운 방법입니다. 폴더를 만들고 cd을 입력하십시오.

>md test 
>cd test 

해당 폴더에, prepare-tests.batmake-classpath.bat 파일을 당신의 WAR 파일을 복사합니다. 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의 클래스를 항아리 (있는 경우) 그 점 클래스 경로를 만들 해당 클래스와 WEB-INF/lib 폴더에있는 모든 JAR에 적용됩니다.

당신은 그때까지 (사용자가 만든 test 폴더 내에서) 테스트를 실행할 수 있습니다 :

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

당신은/자동화 비록 당신의 테스트를 용이하게하기 위해 메이븐과의 JUnit 같은 도구를 사용하여 오프 더 나은 것.

+0

이것은 실제로 효과가 있습니다. 하지만 앞서 가서 독립형 자바 응용 프로그램을 만들고 내가 필요한 것을 옮겼습니다. 이것은 우리가이 물건을 더 잘 조직 할 필요가 있다는 것을 상기시키는 좋은 알림입니다. :-) 감사합니다. \ – cbmeeks

+0

차가워 요. 그래, 한 가지 일을 잘 수행하는 작은 구성 요소를 만들도록 노력하는 것이 가장 좋습니다. 그런 다음 응용 프로그램 서버 없이도 격리하여 테스트 할 수 있습니다. 물론 일부 테스트에는 실행할 웹 컨테이너가 필요할 수도 있지만, 그 중 훨씬 적은 수의 페이지 만 남게 될 것입니다. –