টমক্যাটে চালানোর জন্য যুদ্ধের ফাইল তৈরির (গ্রহনটি ব্যবহার করে) তৈরি করার সেরা অনুশীলনগুলি কী কী? টিউটোরিয়াল, লিঙ্ক, উদাহরণ অত্যন্ত প্রশংসা করা হয়।
টমক্যাটে চালানোর জন্য যুদ্ধের ফাইল তৈরির (গ্রহনটি ব্যবহার করে) তৈরি করার সেরা অনুশীলনগুলি কী কী? টিউটোরিয়াল, লিঙ্ক, উদাহরণ অত্যন্ত প্রশংসা করা হয়।
উত্তর:
আপনি পিঁপড়াটি সেট আপ, সংকলন, যুদ্ধ এবং আপনার সমাধান স্থাপনের জন্য ব্যবহার করতে পারেন ।
<target name="default" depends="setup,compile,buildwar,deploy"></target>
তারপরে আপনি সেই পিঁপড়া লক্ষ্যটি চালানোর জন্য এক্লিপসে একটি ক্লিক সম্পাদন করতে পারেন। এখানে প্রতিটি পদক্ষেপের উদাহরণ রয়েছে:
আমরা ধরে নেব যে আপনার কোডটি এমনভাবে সাজানো আছে:
${basedir}/src
: জাভা ফাইল, বৈশিষ্ট্য, এক্সএমএল কনফিগারেশন ফাইল${basedir}/web
: আপনার জেএসপি ফাইলগুলি${basedir}/web/lib
: রানটাইম সময়ে যে কোনও জেআর প্রয়োজন${basedir}/web/META-INF
: আপনার প্রকাশ${basedir}/web/WEB-INF
: আপনার ওয়েব। এক্সএমএল ফাইলগুলিsetup
এমন একটি কার্য নির্ধারণ করুন যা বিতরণ ডিরেক্টরি তৈরি করে এবং যে কোনও শিল্পকর্মের অনুলিপি করে যা সরাসরি যুদ্ধের প্রয়োজন:
<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>
আপনার জাভা ফাইলগুলি ক্লাসে তৈরি করুন এবং যে কোনও জাভা-না-র নিদর্শনগুলি অন্তর্ভুক্ত রয়েছে তার অনুলিপি করুন src
যা রানটাইম (যেমন বৈশিষ্ট্য, এক্সএমএল ফাইল, ইত্যাদি) পাওয়া দরকার:
<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>
ওয়ার নিজেই তৈরি করুন:
<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>
অবশেষে, আপনি সরাসরি টমকেট মোতায়েনের স্থানে WAR স্থাপনের জন্য একটি কার্য সেট করতে পারেন:
<target name="deploy">
<copy file="My.war" todir="${tomcat.deploydir}" />
</target>
একবার এই সমস্ত সেট আপ হয়ে গেলে, কেবলমাত্র default
গ্রহন থেকে লক্ষ্যটি চালু করা সংকলন, যুদ্ধ এবং আপনার সমাধান স্থাপন করবে dep
এই পদ্ধতির সুবিধাটি হ'ল এটি Eclipse এর বাইরে পাশাপাশি Eclipse এর মধ্যেও কাজ করবে এবং আপনার স্থাপনার কৌশলটি (যেমন উত্স নিয়ন্ত্রণের মাধ্যমে) আপনার বিকাশকারীরা যারা আপনার প্রকল্পে কাজ করছেন তাদের সাথে সহজেই ভাগ করে নেওয়া যেতে পারে।
আমি সবসময় স্রেফ গ্রহস্ব থেকে রফতানি নির্বাচন করেছি। এটি যুদ্ধ ফাইল তৈরি করে এবং প্রয়োজনীয় সমস্ত ফাইল অন্তর্ভুক্ত করে। আপনাকে প্রকল্পের তৈরির প্রকল্পটি একটি ওয়েব প্রকল্প হিসাবে তৈরি করা হবে যা আপনার করা দরকার। গ্রহণটি খুব সহজ করে তোলে।
আমরা আমাদের সমস্ত জাভা প্রকল্পের জন্য মাভেন (পিঁপড়ার বড় ভাই) ব্যবহার করি এবং এটিতে খুব নিফটি ওয়ার প্লাগইন রয়েছে। টিউটোরিয়াল এবং ব্যবহার সেখানে পাওয়া যাবে।
এটি পিঁপড়ের চেয়ে অনেক সহজ, 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>
যুদ্ধ ফাইল হ'ল একটি যুদ্ধের এক্সটেনশন সহ একটি জার ফাইল, তবে এটি কীভাবে কাজ করে তা হ'ল সামগ্রী কীভাবে কাঠামোগত হয়।
J2EE / জাভা EE টিউটোরিয়াল শুরু হতে পারে:
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebCompferences3.html
এবং সার্লেলেট স্পেসিফিকেশনটিতে বিষাক্ত বিবরণ রয়েছে:
http://java.sun.com/products/servlet/download.html
আপনি যদি Eclipse এ একটি নতুন ওয়েব প্রকল্প তৈরি করেন (আমি জাভা EE সংস্করণ উল্লেখ করছি), আপনার জন্য কাঠামোটি তৈরি করা হয়েছে এবং আপনি এটিও বলতে পারেন যে আপনার অ্যাপসভারটি কোথায় ইনস্টল করা আছে এবং এটি আপনার জন্য আবেদন স্থাপন এবং শুরু করবে lo
"এক্সপোর্ট-> ওয়ার ফাইল" বিকল্পটি ব্যবহার করা আপনাকে যুদ্ধের ফাইলটি সংরক্ষণ করতে দেয়।
যদি আপনি নিশ্চিত না হন এবং স্ক্র্যাচ থেকে শুরু করছেন তবে মাভেন আপনাকে শুরু করতে সহায়তা করতে পারে।
নীচের পদক্ষেপগুলি অনুসরণ করে আপনি গ্রহনে পুরোপুরি একটি নতুন যুদ্ধ প্রকল্পের সেটআপ পেতে পারেন।
mvn archetype:generate
mvn eclipse:eclipse
mvn package
বা এটি স্থাপনের মাধ্যমে সূর্যগ্রহণে একটি সার্ভার স্থাপন করে এবং সার্ভারে প্রজেক্টটি যুক্ত করে যুক্ত করতে পারেন।যেমন কিছু অন্যান্য বলেছেন যে ম্যাগেন ব্যবহারের ক্ষয়ক্ষতি হ'ল আপনাকে মভেন কনভেনশনগুলি ব্যবহার করতে হবে। তবে আমি মনে করি আপনি নিজের তৈরি শুরু করার আগে যদি আপনি সবে শুরু করে থাকেন তবে সম্মেলনগুলি শেখা একটি ভাল ধারণা। পরবর্তী সময়ে আপনাকে নিজের পছন্দসই পদ্ধতিতে পরিবর্তন / রিফ্যাক্টরিং থামানোর কিছু নেই।
আশাকরি এটা সাহায্য করবে.
পিঁপড়া যুদ্ধের কাজটি ব্যবহার করুন
আমার প্রজেক্টের এসএমএসের জন্য এন্টি বিল্ড কোড ব্যবহার করুন this
<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>
WEB-INF ফোল্ডারের বাইরে নিম্নলিখিত কমান্ডটি ব্যবহার করুন। এটি আপনার যুদ্ধ ফাইল তৈরি করা উচিত এবং আমি জানি দ্রুততম পদ্ধতি।
(আপনার জেডিকে ১.7++ ইনস্টলড এবং এনভায়রনমেন্ট ভেরিয়েবলের দরকার হবে যা আপনার জেডিকে এর বিন ডিরেক্টরিতে নির্দেশ করবে))
jar -cvf projectname.war *
'jar' is not recognized as an internal or external command
তবে চেষ্টা করুন"%JAVA_HOME%\bin\jar" -cvf projectname.war *
আরেকটি বিকল্প হ'ল এটি Elpipse ব্যবহার করে স্বয়ংক্রিয়ভাবে তৈরি করা। অবশ্যই আপনার যদি অবিচ্ছিন্ন একীকরণের পরিবেশ থাকে তবে পিঁপড়া বা মাভেনের প্রস্তাব দেওয়া হয়। রফতানি বিকল্পটি খুব সুবিধাজনক নয় কারণ আপনাকে প্রতিবার রফতানি বৈশিষ্ট্যগুলি কনফিগার করতে হবে।
পদক্ষেপ:
"প্রকল্প সংরক্ষণাগার" সমর্থন সক্ষম করুন; এটি আপনার প্রকল্পের উপর নির্ভর করে (আমি এটি জাভা ইই / ওয়েব প্রকল্পে ব্যবহার করেছি)। প্রকল্পের মূল ডিরেক্টরিটি ডান ক্লিক করুন; কনফিগার -> প্রকল্প সংরক্ষণাগার সমর্থন যোগ করুন।
"প্রোজেক্ট আর্কাইভস" শীর্ষ ডিয়ারে গিয়ে একটি নতুন সংরক্ষণাগার তৈরি করুন। আপনার কাছে কেবল জার বিকল্প রয়েছে তবে আপনার সংরক্ষণাগার নাম রাখুন * .war।
ফাইলসেট-গুলি কনফিগার করুন, অর্থাৎ কোন ফাইল অন্তর্ভুক্ত করা উচিত। টিপিক্যাল হ'ল ওয়েব ডিপ্লোয়মেন্ট অ্যাসেমব্লি (প্রকল্পের সম্পত্তি) কনফিগার করা হয়েছে এমন একইভাবে দুটি ফাইলসেট কনফিগার করা।
আপনি কিছু কনফিগার ফাইল রেখেছেন তার উপর নির্ভর করে আপনার ফাইলসেটটি বাদ দিয়ে সম্পত্তি পরিবর্তন করতে হবে বা আপনার আরও ফাইলসেটের প্রয়োজন হতে পারে, তবে ধারণাটি হ'ল একবার এটি কনফিগার করার পরে আপনার এটি পরিবর্তন করার দরকার নেই।
সংরক্ষণাগারটি ম্যানুয়ালি তৈরি করুন বা সরাসরি সার্ভারে প্রকাশ করুন; তবে গ্রহন দ্বারা আপনার জন্য স্বয়ংক্রিয়ভাবে নির্মিত
আর একটি সাধারণ বিকল্প গ্রেডল।
http://www.gradle.org/docs/current/userguide/application_plugin.html
একটি ওয়েব অ্যাপ্লিকেশন আপনার যুদ্ধ ফাইল তৈরি করতে:
Build.gradle এ, যুক্ত করুন:
apply plugin: 'war'
তারপরে:
./gradlew war
উপরে গৃহীত উত্তর থেকে বিন্যাসটি ব্যবহার করুন।
সহজ সমাধান যা গ্রহণের কর্মক্ষেত্রকে সতেজ করে তোলে:
<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="default">
<target name="default">
<war destfile="target/MyApplication.war" webxml="web/WEB-INF/web.xml">
<fileset dir="src/main/java" />
<fileset dir="web/WEB-INF/views" />
<lib dir="web/WEB-INF/lib"/>
<classes dir="target/classes" />
</war>
<eclipse.refreshLocal resource="MyApplication/target" depth="infinite"/>
</target>
</project>
স্ট্যান্ডার্ড ইক্লিপ্স ডায়নামিক ওয়েব প্রকল্প থেকে ওয়ার ফাইলগুলি তৈরির জন্য সরল শেল কোড। লিনাক্স প্ল্যাটফর্মে র্যাম ফাইল সিস্টেম (/ dev / shm) ব্যবহার করে।
#!/bin/sh
UTILITY=$(basename $0)
if [ -z "$1" ] ; then
echo "usage: $UTILITY [-s] <web-app-directory>..."
echo " -s ..... With source"
exit 1
fi
if [ "$1" == "-s" ] ; then
WITH_SOURCE=1
shift
fi
while [ ! -z "$1" ] ; do
WEB_APP_DIR=$1
shift
if [ ! -d $WEB_APP_DIR ] ; then
echo "\"$WEB_APP_DIR\" is not a directory"
continue
fi
if [ ! -d $WEB_APP_DIR/WebContent ] ; then
echo "\"$WEB_APP_DIR\" is not a Web Application directory"
continue
fi
TMP_DIR=/dev/shm/${WEB_APP_DIR}.$$.tmp
WAR_FILE=/dev/shm/${WEB_APP_DIR}.war
mkdir $TMP_DIR
pushd $WEB_APP_DIR > /dev/null
cp -r WebContent/* $TMP_DIR
cp -r build/* $TMP_DIR/WEB-INF
[ ! -z "$WITH_SOURCE" ] && cp -r src/* $TMP_DIR/WEB-INF/classes
cd $TMP_DIR > /dev/null
[ -e $WAR_FILE ] && rm -f $WAR_FILE
jar cf $WAR_FILE .
ls -lsF $WAR_FILE
popd > /dev/null
rm -rf $TMP_DIR
done
** গ্রিল ওয়েব প্রকল্পে গাইনেমেডের এক্সিলিপসে যুদ্ধ ফাইল তৈরি করা **
1. আমদানি প্রকল্প:
2. ডেটাসোর্স.groovy ফাইল পরিবর্তন করুন
এটির মতো: url = "jdbc: postgresql: //18.247.120.101: 8432 / PGMS"
2.chnge AppConfig.xml
3. টাস্ক ম্যানেজার থেকে জাভা কিল:
গ্রহনে ক্লিন কোমন্ড চালান
প্রকল্পের নাম দ্বারা চালিত 'প্রোড ওয়ার' চালান।
লগ ফাইলটি পরীক্ষা করুন এবং একই তারিখের সাথে ওয়ার্কব্যাঞ্চের ডিরেক্টরিতে একই .war ফাইলটি সন্ধান করুন।