জাভাস্ক্রিপ্ট ওয়েব অ্যাপ্লিকেশন এবং জাভা সার্ভার, মাভেনে সমস্ত তৈরি করুন বা ওয়েব অ্যাপ্লিকেশনটির জন্য গ্রান্ট ব্যবহার করবেন?


97

আমরা অ্যাংুলারজেএস-এর সাথে একটি ওয়েব অ্যাপ্লিকেশন করছি এবং আমরা নির্ভরতা পরিচালনার জন্য বাভার তৈরির জন্য, পরীক্ষা চালানোর জন্য ইত্যাদি ব্যবহারের ধারণা পছন্দ করি ( ইয়োমন )

সার্ভারটি ম্যাভেন ব্যবহার করে জাভা দিয়ে সম্পন্ন হয়েছে, অবশ্যই অবশ্যই আমরা একটি সাধারণ mvn installবিল্ড সবকিছু দিয়ে (ওয়েব অ্যাপ্লিকেশন + সার্ভার) চাই

সুতরাং আপনি কোন পদ্ধতির গ্রহণ করেছেন এবং কেন?

1) তাদের দুটি পৃথক অ্যাপ্লিকেশন হিসাবে বিবেচনা করুন, যা বাস্তবে তারা। সুতরাং বিভিন্ন বিল্ডিং পদ্ধতি / সরঞ্জামগুলি গ্রহণযোগ্য।

2) গ্রান্ট বোভার সম্পর্কে ভুলে যান, ওয়েব অ্যাপ্লিকেশনটির জন্য নির্ভরতা পরিচালনা করতে, পরীক্ষা চালাতে, মাভেন প্লাগইন ব্যবহার করুন। যদি তা হয় তবে কোনটি?

3) ফ্রন্ট-এন্ড ওয়েব্যাপ তৈরি করতে গ্রান্টকে কল করতে মাভেন এক্সিকিউট প্লাগইন ব্যবহার করুন। আমি এটি সমাধানের চেয়ে হ্যাক হিসাবে বেশি দেখছি।

4) অন্যান্য।

জেনকিন্সের সাথে সংহত করার জন্য সহজ উপায় একটি বোধক।

আগাম ধন্যবাদ!


4
3 বছর পরে, সরঞ্জাম একীকরণ সুস্পষ্টভাবে উন্নত হয়েছে। এই মেভেন প্লাগইনটিতে বেশিরভাগ জিনিস covered াকা রয়েছে
earcam

উত্তর:


73

জাভা টুলকিটের প্রায় প্রতিটি সম্পদ পাইপলাইন সরঞ্জামের সাথে কাজ করার পরে আমি কিছু সিদ্ধান্তে পৌঁছেছি:

জাভা ভিত্তিক সরঞ্জাম

সেখানে প্রচুর সরঞ্জাম রয়েছে তবে সর্বাধিক জনপ্রিয় জেএডব্লিউআর এবং ডাব্লু 4 জে। এই উভয়েরই সবচেয়ে বড় সমস্যা হ'ল এগুলি বেশিরভাগ রাইনো ভিত্তিক (ডাব্লুআরও 4 জে এখন কিছু নোড সমর্থন রয়েছে) এবং নোড ভিত্তিক সরঞ্জামগুলির তুলনায় গন্ডার কুকুর ধীর। আপনাকে এটিও বিবেচনা করতে হবে যে জাভাস্ক্রিপ্ট টুলিং দ্রুত পরিপক্ক হচ্ছে সুতরাং আপনার এমন সরঞ্জামের সন্ধান করা উচিত যা দ্রুত সরাতে পারে।

  • ডাব্লুআর 4 জে - সমর্থন দুর্দান্ত, ম্যাভেন এবং ইকলিপস ইন্টিগ্রেশন দুর্দান্ত প্লাগইনগুলির তালিকা বিস্তৃত এবং ফ্রেমওয়ার্কটি যথেষ্ট নমনীয় যে কিছু কনুই গ্রীসের সাহায্যে আপনি যা প্রয়োজন তার জন্য একটি প্লাগইন লিখতে পারেন। যদি আপনি কোনও জাভা ভিত্তিক সম্পদ পাইপলাইনে সীমাবদ্ধ থাকেন তবে এটি নিশ্চিতভাবে যাওয়ার উপায়। Wro4j এর সমস্যাটি হ'ল নোড ভিত্তিক সরঞ্জামগুলির তুলনায় এটি ধীর গতির (এমনকি এটি নোড প্রক্রিয়াগুলি কিক্স করেও)।
    কিছু বাস্তব বিশ্বের সংখ্যার সংকলন করতে এবং সংক্ষেপণ করতে 25 কম সম্পদ বান্ডিলগুলি কম, সিএসএস কফিস্ক্রিপ্ট এবং জাভাস্ক্রিপ্টের সাথে রিনো ব্যবহার করার সময় প্রায় 35 ডলার এবং 16 গিগাবাইট র‌্যামের সাথে আইএম্যাক 2013-এ Wro4j এর নোড সমর্থন ব্যবহার করে ~ 35s লাগে। গ্রান্ট + নোড ব্যবহার করা আমার পিউনি ম্যাকবুক এয়ারে প্রায় 2 সেকেন্ড সময় নেয়।

  • জেডাব্লুআর - সংহতকরণ এবং বৈশিষ্ট্য তালিকাটি বেশ ভাল তবে ডকগুলি দুর্দান্ত নয় এবং আপনার নিজের প্লাগইনগুলি লেখা কিছুটা জটিল হতে পারে। আমি যখন মূলত এই পোস্টটি লিখেছিলাম তখন জেএডব্লিউআর ৪ বছরের ব্যবধানের মাঝামাঝি ছিল তবে ২০১৪ সালের জানুয়ারী থেকে এখন সক্রিয় বিকাশের মধ্যে রয়েছে you আপনি যদি জাভা সরঞ্জামগুলি অনুসন্ধান করতে চান তবে এটি তদন্তের উপযুক্ত।

নোড ভিত্তিক টুলিং (পিপীলিকা / ম্যাভেন বিল্ডসের সাথে সংহত)

  • গ্রান্ট - এটি সহজ, একটি দুর্দান্ত প্লাগইন ইকোসিস্টেম রয়েছে এবং সম্প্রদায়টি বিশাল। আপনার যদি কিছু করার দরকার হয় তবে আপনি বাজি ধরতে পারেন এটির জন্য একটি প্লাগইন রয়েছে - সম্ভবত এমনকি গ্রেন্টের স্রষ্টাদের দ্বারা লিখিত একটি। গ্রান্টের প্রধান সমালোচনা হ'ল এটি কনফিগারেশন চালিত যা খুব সহজ সেটআপের জন্য সহজ করে তবে এটি "নোড ওয়ে" নয়। এটি আরও উল্লেখযোগ্য যে গ্রান্ট কাজগুলি সহজেই কমপোজ হয় না তাই জটিল জাভাস্ক্রিপ্ট বিল্ড পাইপলাইনের জন্য গ্রান্ট আদর্শ নাও হতে পারে।

  • গুল্প - গুল্প গ্রান্টের দ্রুত বর্ধমান বিকল্প। এটি ডিফল্টরূপে সমবর্তী এবং ফাইল সিস্টেমে অস্থায়ী লেখাগুলি এড়ানোর জন্য স্ট্রিম ব্যবহার করে যা আপনার বিল্ডকে যথেষ্ট গতিময় করতে পারে। গুল্প খুব মূর্খবাদী এবং কোড> কনফিগারেশনের উপর জোর দেয় এবং এটি আপনাকে প্রচুর শক্তি দেয় যখন এটি জাভাস্ক্রিপ্টে মূল দক্ষতা না থাকা দলগুলির পক্ষে আদর্শ নয়।

জাভাস্ক্রিপ্ট ভিত্তিক টুলিংয়ের একমাত্র সম্ভাব্য হ্যাঙ্গআপটি হ'ল সংকলনটি করার জন্য যে কোনও মেশিনে আপনার নোড , এনপিএম এবং গ্রান্ট-ক্লিপ / গল্প থাকতে হবে। আপনার সিআই মেশিনগুলিতে অ্যাক্সেস না থাকলে বা আর্টিফ্যাক্ট ভিত্তিক স্থাপনা ব্যবহার না করা এটি একটি শক্ত বিক্রয় হতে পারে।

আপনার মাভেন প্রকল্পে এটি সংহত করা বেশ সহজ এবং আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে। আপনি ম্যাভেন পিঁপড়া-চালিত প্লাগইন ব্যবহার করতে পারেন , আপনি একটি পিপীলিকা এক্সিকিউট টাস্কটি চালাতে পারেন এবং মাভেনের কাছ থেকে কল করতে পারেন বা সর্বোপরি আপনি কেবল ম্যাভেন এক্সিকিউট টাস্কটি ব্যবহার করতে পারেন ।
এটিকে এক্সিকিউটিভ প্লাগইন ব্যবহার করে ম্যাভেন লাইফসাইকেলে একীভূত করার জন্য নীচে কোডটি দেওয়া হয়েছে যদি এটি কারও সহায়ক হয়।

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.2.1</version>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <goals>
            <goal>exec</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <executable>grunt</executable>
      </configuration>
    </plugin>

4
বিস্তারিত উত্তর করার জন্য ধন্যবাদ। আমি নোড ভিত্তিক টুলিং বিকল্পের জন্য যাব বলে মনে করি। গ্রান্টে নতুন আমি এ পর্যন্ত যা দেখেছি তা পছন্দ করি এবং আমি যদি দু'টি বিশ্বের মধ্যে সেরা হতে পারি তবে দুর্দান্ত। আমি WRO4J এবং JAWR এর অস্তিত্ব সম্পর্কে জানতাম না। আবার ধন্যবাদ.
অকার্যকর

wro4j কম 4j প্রসেসরকে সংহত করে যা জাভা ভিত্তিক কম প্রয়োগের বাস্তবায়ন যাঁর কর্মক্ষমতা নোড.জেএস নেটিভ একের সাথে তুলনীয়।
অ্যালেক্স ওবজিলিয়ান

4
Wro4j নোড.জেএস সহ দ্রুত না হওয়ার কারণটি বেশিরভাগ ক্ষেত্রে এটি প্রতিটি মৃত্যুর জন্য ডিস্ক আইও অপারেশন প্রয়োজন। এটি কেবল তখনই উন্নত হতে পারে যদি নোড.জেএস ভিত্তিক প্রক্রিয়াগুলি (যেমন: কম) এর সাহায্যে স্মৃতি সংকলনের অনুমতি দেয়।
অ্যালেক্স ওবজিলিয়ান

12
বিল্ডটি ব্যর্থ Mavenহলে এই প্রক্রিয়াটি বিল্ডটিকে ব্যর্থ করতে সহায়তা করে grunt?
স্নেকস

6
কোনও এক্সিকিউটিভ টাস্ক যা সঠিকভাবে ফিরে আসে না তার ক্ষেত্রে বিল্ডটি ব্যর্থ হয়। stackoverflow.com/questions/3480162/…
বায়ের

24

এই বিষয়ে এখনও আরও তথ্যের সন্ধান করা যে কোনও ব্যক্তির জন্য, ইওমানের একজন স্রষ্টার একটি ভাল নিবন্ধ রয়েছে (এই প্রশ্নটি মূলত জিজ্ঞাসা করার কয়েক মাস পরে লেখা হয়েছিল) যা আরও কিছুটা বিশদ সহ মূল উত্তরটিতে প্রসারিত:


দ্বিগুণ ধন্যবাদ! আমি এই পোস্টটি অত্যন্ত সহায়ক ছিল এবং এটি আমি যা খুঁজছিলাম তা আরও বেশি ছিল
রায়ান জে ম্যাকডনফ

13

তারপরেও সীমানা-ম্যাগন-প্লাগইন রয়েছে: https://stackoverflow.com/a/19600777/320399 এটি আপনার জন্য নোড এবং এনপিএম ডাউনলোড করে (স্থানীয়ভাবে আপনার প্রকল্পে), সেই এনপিএমের মাধ্যমে গ্রান্ট ডাউনলোড করে (সেই নোড দ্বারা চালিত) এবং তারপরে গ্রান্ট চালায় (সেই নোডের মাধ্যমে)। এটি স্ব-বুটস্ট্র্যাপিং এবং আপনার প্রকল্পটি তৈরির জন্য মেশিনে নোড ইনস্টল করার দরকার নেই। কেবল একটি আদেশ; এমভিএন ইনস্টল করুন।


13

আপনি http://jhipster.github.io/ চেকআউট করতে চাইতে পারেন : এটি ইয়েমেন জেনারেটর, এটি এমন একটি অ্যাপ্লিকেশন জেনারেট করে যা মাভেন, গ্রান্ট এবং বওয়ার সবাই একসাথে কাজ করছে।

এটি আপনার তৃতীয় বিকল্পের মতো কিছুটা হলেও আপনার জন্য সবকিছু কনফিগার করা হয়েছে যা এতটা সহজ নয়। এটি আপনার জন্য বেসিক অ্যাংুলারজেএস এবং জাভা আরএসটি পরিষেবাও উত্পন্ন করছে।


4
আমার প্রকল্পটি সদ্য উত্পন্ন অ্যাপ্লিকেশনটি দিয়ে শুরু করতে খুব দেরি হয়েছে। তবে এটি দুর্দান্ত এবং খুব সহায়ক, আমি উত্পন্ন অ্যাপ্লিকেশন থেকে আমার সমাধানগুলিতে কিছু ধার দেব এবং আমার প্রকল্পে ব্যবহার করব। ধন্যবাদ!
Matsemann

4
প্রকৃতপক্ষে, আপনাকে কেবল ইয়েমেন-মেভেন-প্লাগইন অন্তর্ভুক্ত করতে হবে এবং এটি আপনাকে জাভাস্ক্রিপ্ট কনফিগার স্টাফগুলি (বোরও, এনপিএম, গ্রান্ট )কে পম.এক্সএমএল (ঠিক এই ফাইলগুলি আইএমওভুক্ত হওয়া উচিত) হিসাবে ভাইবোন হিসাবে স্থাপন করার অনুমতি দেয় এবং তারপরে এমভিএন ইনস্টল এটি কেবলমাত্র সবকিছু তৈরি করবে - এসআরসি / মেইন / ওয়েবঅ্যাপের অধীনে আপনার ওয়েব অ্যাপ্লিকেশন সহ। বিদ্যমান কাঠামোটিতে একটি বিদ্যমান প্রকল্পের পোর্ট করতে আমার আধ ঘন্টা কম সময় নিয়েছে। অবশ্যই আপনার github.com/jhipster/jhipster-sample-app
raven_arkadon

4

এই সমস্যার জন্য কয়েক ঘন্টা ব্যয় করার পরে, আমি এটি বলতে পারি:

ম্যাভেন এবং গ্রান্ট ভাল খেলেন না, তবে এটি প্রয়োগ করা যেতে পারে ..

মাভেন বিল্ডের মাধ্যমে গ্রান্ট চালানোর জন্য এখানে একটি প্লাগইন বিবরণ দেওয়া আছে

আশা করি এটা কাজে লাগবে :)


উত্তরের জন্য ধন্যবাদ, এটি হ্যাঁ সাহায্য করে তবে আমি @ উত্তর উত্তর অনুসারে এটি চেষ্টা করব।
অকার্যকর

9
উল্লেখ করা
বাক্যটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.