바람둥이에서 실행하기 위해 전쟁 파일을 만드는 모범 사례 (Eclipse 사용)는 무엇입니까? 튜토리얼, 링크, 예제는 높이 평가됩니다.
답변
Ant 를 사용 하여 솔루션 을 설정, 컴파일, WAR 및 배치 할 수 있습니다.
<target name="default" depends="setup,compile,buildwar,deploy"></target>
그런 다음 Eclipse에서 한 번의 클릭을 실행하여 해당 Ant 대상을 실행할 수 있습니다. 다음은 각 단계의 예입니다.
전제 조건
코드가 다음과 같이 구성되어 있다고 가정합니다.
${basedir}/src
: Java 파일, 속성, XML 구성 파일${basedir}/web
: JSP 파일${basedir}/web/lib
: 런타임에 필요한 모든 JAR${basedir}/web/META-INF
: 매니페스트${basedir}/web/WEB-INF
: web.xml 파일
설정
setup
배포 디렉토리를 생성하고 WARred가 필요한 아티팩트를 직접 복사 하는 작업을 정의합니다 .
<target name="setup">
<mkdir dir="dist" />
<echo>Copying web into dist</echo>
<copydir dest="dist/web" src="web" />
<copydir dest="dist/web/WEB-INF/lib" src="${basedir}/../web/WEB-INF/lib" />
</target>
엮다
Java 파일을 클래스로 빌드하고 그 아래에 src
있지만 런타임시 사용할 수 있어야 하는 비 Java 아티팩트 (예 : 속성, XML 파일 등)를 복사합니다 .
<target name="compile">
<delete dir="${dist.dir}/web/WEB-INF/classes" />
<mkdir dir="${dist.dir}/web/WEB-INF/classes" />
<javac destdir="${dist.dir}/web/WEB-INF/classes" srcdir="src">
<classpath>
<fileset dir="${basedir}/../web/WEB-INF/lib">
<include name="*" />
</fileset>
</classpath>
</javac>
<copy todir="${dist.dir}/web/WEB-INF/classes">
<fileset dir="src">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
</target>
WAR 빌드
WAR 자체를 작성하십시오.
<target name="buildwar">
<war basedir="${basedir}/dist/web" destfile="My.war"
webxml="${basedir}/dist/web/WEB-INF/web.xml">
<exclude name="WEB-INF/**" />
<webinf dir="${basedir}/dist/web/WEB-INF/">
<include name="**/*.jar" />
</webinf>
</war>
</target>
배포
마지막으로 Tomcat 배포 위치에 WAR을 직접 배포하는 작업을 설정할 수 있습니다.
<target name="deploy">
<copy file="My.war" todir="${tomcat.deploydir}" />
</target>
클릭하고 가십시오!
이 모든 것이 설정되면 default
Eclipse 에서 대상을 실행하기 만하면 솔루션이 컴파일, WAR 및 배포됩니다.
이 접근 방식의 장점은 Eclipse 내에서뿐만 아니라 Eclipse 외부에서도 작동하고 프로젝트를 함께 작업하는 다른 개발자와 배포 전략 (예 : 소스 제어를 통해)을 쉽게 공유하는 데 사용할 수 있다는 것입니다.
답변
저는 항상 Eclipse에서 내보내기를 선택했습니다. war 파일을 빌드하고 필요한 모든 파일을 포함합니다. 프로젝트를 웹 프로젝트로 생성 한 것을 제공하기 만하면됩니다. Eclipse를 사용하면 매우 간단합니다.
답변
우리는 모든 자바 프로젝트에 Maven (Ant의 빅 브라더)을 사용하며 매우 멋진 WAR 플러그인을 가지고 있습니다. 튜토리얼과 사용법은 거기에서 찾을 수 있습니다.
Ant보다 훨씬 쉽고 Eclipse와 완벽하게 호환되며 ( 이클립스 프로젝트를 만들려면 maven eclipse : eclipse 를 사용) 구성하기 쉽습니다.
샘플 구성 :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-2</version>
<configuration>
<outputDirectory>${project.build.directory}/tmp/</outputDirectory>
<workDirectory>${project.build.directory}/tmp/war/work</workDirectory>
<webappDirectory>${project.build.webappDirectory}</webappDirectory>
<cacheFile>${project.build.directory}/tmp/war/work/webapp-cache.xml</cacheFile>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>png</nonFilteredFileExtension>
<nonFilteredFileExtension>gif</nonFilteredFileExtension>
<nonFilteredFileExtension>jsp</nonFilteredFileExtension>
</nonFilteredFileExtensions>
<webResources>
<resource>
<directory>src/main/webapp/</directory>
<targetPath>WEB-INF</targetPath>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</webResources>
<warName>Application</warName>
</configuration>
</plugin>
답변
war 파일은 단순히 war 확장자가있는 jar 파일이지만 내용이 실제로 구조화되는 방식이 작동합니다.
J2EE / Java EE 튜토리얼은 시작이 될 수 있습니다.
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html
그리고 Servlet 사양에는 세부 정보가 포함되어 있습니다.
http://java.sun.com/products/servlet/download.html
Eclipse에서 새 웹 프로젝트를 생성하면 (Java EE 버전을 의미 함) 구조가 생성되며 Appserver가 설치된 위치를 알려줄 수 있으며 애플리케이션을 배포하고 시작할 것입니다.
“내보내기-> WAR 파일”옵션을 사용하면 전쟁 파일을 저장할 수 있습니다.
답변
무엇을해야할지 확실하지 않고 처음부터 시작하는 경우 Maven이 시작하는 데 도움을 줄 수 있습니다.
아래 단계를 따르면 Eclipse에서 새로운 전쟁 프로젝트 설정을 완벽하게 얻을 수 있습니다.
- Maven 다운로드 및 설치
- 명령 줄 실행 :
mvn archetype:generate
- 프롬프트 된 단계를 따르십시오-간단한 Java 웹 프로젝트 (18) 및 적절한 이름 선택.
- 완료되면 다음을 실행하십시오.
mvn eclipse:eclipse
- Eclipse를 시작하십시오. 파일-> 가져 오기-> 기존 프로젝트를 선택합니다. mvn 목표를 실행 한 디렉토리를 선택하십시오.
- 이제 Eclipse에서 전쟁 프로젝트를 아주 잘 시작해야합니다.
mvn package
Eclipse에서 서버를 설정하고 단순히 프로젝트를 서버에 추가하여 실행 하거나 배포 하여 전쟁 자체를 만들 수 있습니다 .
다른 사람들이 maven 사용의 단점은 maven 규칙을 사용해야한다는 것입니다. 하지만 막 시작하는 경우, 자신 만의 규칙을 만들기 전에 규칙을 배우는 것이 좋은 생각이라고 생각합니다. 나중에 선호하는 방법으로 변경 / 리팩토링하는 것을 막을 수는 없습니다.
도움이 되었기를 바랍니다.
답변
사용 개미 전쟁 작업을
답변
내 프로젝트 SMS에 사용하는 개미 빌드 코드 사용
<property name="WEB-INF" value="${basedir}/WebRoot/WEB-INF" />
<property name="OUT" value="${basedir}/out" />
<property name="WAR_FILE_NAME" value="mywebapplication.war" />
<property name="TEMP" value="${basedir}/temp" />
<target name="help">
<echo>
--------------------------------------------------
compile - Compile
archive - Generate WAR file
--------------------------------------------------
</echo>
</target>
<target name="init">
<delete dir="${WEB-INF}/classes" />
<mkdir dir="${WEB-INF}/classes" />
</target>
<target name="compile" depends="init">
<javac srcdir="${basedir}/src"
destdir="${WEB-INF}/classes"
classpathref="libs">
</javac>
</target>
<target name="archive" depends="compile">
<delete dir="${OUT}" />
<mkdir dir="${OUT}" />
<delete dir="${TEMP}" />
<mkdir dir="${TEMP}" />
<copy todir="${TEMP}" >
<fileset dir="${basedir}/WebRoot">
</fileset>
</copy>
<move file="${TEMP}/log4j.properties"
todir="${TEMP}/WEB-INF/classes" />
<war destfile="${OUT}/${WAR_FILE_NAME}"
basedir="${TEMP}"
compress="true"
webxml="${TEMP}/WEB-INF/web.xml" />
<delete dir="${TEMP}" />
</target>
<path id="libs">
<fileset includes="*.jar" dir="${WEB-INF}/lib" />
</path>