মাভেনের সাথে একটি জারে নির্ভরতা সহ


353

একক জার ফাইলে সমস্ত নির্ভরতা অন্তর্ভুক্ত করার জন্য কি মেভেনকে (২.০.৯) জোর করার কোনও উপায় আছে?

আমি একটি প্রকল্প একটি একক জার ফাইল মধ্যে বিল্ডস আছে। আমি চাই নির্ভরতা থেকে ক্লাসগুলিও জারের মধ্যে অনুলিপি করা হোক।

আপডেট: আমি জানি যে আমি জার ফাইলটিতে একটি জার ফাইল অন্তর্ভুক্ত করতে পারি না। নির্ভরতা হিসাবে নির্দিষ্ট করা জারগুলি আনপ্যাক করার জন্য এবং ক্লাশ ফাইলগুলিকে আমার জারে প্যাকেজ করার জন্য আমি একটি উপায় অনুসন্ধান করছি।




2
মাভেনে জার ফাইলের মধ্যে একটি জার ফাইল কীভাবে অন্তর্ভুক্ত করবেন?
কুশ প্যাটেল

উত্তর:


488

আপনি "জার-নির্ভর-নির্ভরতা" বর্ণনাকারীর সাহায্যে মাভেন-অ্যাসেম্বলি প্লাগইনটি ব্যবহার করে এটি করতে পারেন। আমাদের পম.এক্সএমএল এর একটিতে প্রাসঙ্গিক অংশ যা এটি করে:

  <build>
    <plugins>
      <!-- any other plugins -->
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>

30
attachedলক্ষ্য অসমর্থিত হয়েছে। singleবা directory-singleলক্ষ্য পরিবর্তে পছন্দসই দিতে হবে।
পাস্কেল থিভেন্ট

16
directory-singleএখন পাশাপাশি অবচয় করা হয়।
জেমস ম্যাকমাহন

14
একক ব্যবহারের জন্য অফিশিয়াল ওয়েবসাইটে
mateuszb

42
যদি কোনও নতুন এমভিএন লোকেরা আমার মতো আটকে যায় তবে <বিলেড> ভিতরে <বিজেড> ভিতরে প্লাগইনটি <plugins> এ যুক্ত করুন <
ডিএ

10
@ Christian.tucker মত এই তৈরি করা লক্ষ্য ডিরেক্টরির মধ্যে একটি 2nd বয়াম আছে: ./target/example-0.0.1-SNAPSHOT.jar এবং ./target/example-0.0.1-SNAPSHOT-jar-with-dependencies.jar
টেকনোক্র্যাট

145

মাভেন 2 এর সাহায্যে সঠিক উপায় হ'ল মাভেন 2 এসেম্বলি প্লাগইন ব্যবহার করা যা এই উদ্দেশ্যে একটি পূর্বনির্ধারিত বর্ণনাকারী ফাইল রয়েছে এবং আপনি কেবল কমান্ড লাইনেই ব্যবহার করতে পারেন:

mvn assembly:assembly -DdescriptorId=jar-with-dependencies

আপনি যদি এই বয়ামকে সম্পাদনযোগ্য করে তুলতে চান তবে প্লাগইন কনফিগারেশনে চালানোর জন্য প্রধান শ্রেণিটি যুক্ত করুন:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>my.package.to.my.MainClass</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

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

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>create-my-bundle</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        ...
      </configuration>
    </execution>
  </executions>
</plugin>

configurationআপনার প্রয়োজন অনুসারে উপাদানটি মানিয়ে নিন (উদাহরণস্বরূপ ম্যানিফেস্ট স্টাফের সাথে কথিত)


আমি ঠিক এটি চেষ্টা করছি, তবে প্লাগইনটি চালিত হয় না এবং জার ফাইলটি তৈরি হয় না যদিও বিল্ডটি কার্যকরভাবে কার্যকর করে utes এমন কোনও সাধারণ সমস্যা আছে যা আমি আটকে থাকতে পারি?
পোস্টেফ

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

38

আপনি যদি এক্সিকিউটেবল জার ফাইলটি করতে চান তবে তাদের অবশ্যই প্রধান বর্গ সেট করা দরকার। সুতরাং সম্পূর্ণ কনফিগারেশন হওয়া উচিত।

    <plugins>
            <plugin>
                 <artifactId>maven-assembly-plugin</artifactId>
                 <executions>
                     <execution>
                          <phase>package</phase>
                          <goals>
                              <goal>single</goal>
                          </goals>
                      </execution>
                  </executions>
                  <configuration>
                       <!-- ... -->
                       <archive>
                           <manifest>
                                 <mainClass>fully.qualified.MainClass</mainClass>
                           </manifest>
                       </archive>
                       <descriptorRefs>
                           <descriptorRef>jar-with-dependencies</descriptorRef>
                      </descriptorRefs>
                 </configuration>
         </plugin>
   </plugins>

2
"জার-নির্ভর-নির্ভরতা" দিয়ে জারের নাম যুক্ত করা হয়েছে কেন ?! কোন workaround?
টিনা জে

1
@Tina জে আপনি যোগ করতে পারেন <appendAssemblyId>false</appendAssemblyId>ভিতরে <configuration>চূড়ান্ত নামে "-jar-সঙ্গে-নির্ভরতা" প্রত্যয় বাদ দেওয়ার ট্যাগ।
ccu

19

আছে আলোছায়া ম্যাভেন প্লাগইন । এটি নির্ভরতা প্যাকেজ করতে এবং পুনরায় নামকরণ করতে (ক্লাসপথে নির্ভরতা সমস্যা বাদ দিতে) ব্যবহার করতে পারেন ।


2
আপনি যদি ফাইলের নামের অংশ হিসাবে নির্ভরতা-নির্ভরতা পছন্দ করেন না।
কাইল

বৈশিষ্ট্যটি ছোট করুন maven.apache.org/plugins/maven-shade-plugin/example/…
আলেকজান্দে 191

এটি আমার জন্য সেরা উত্তর ছিল .. :)
আনন্দ ভার্কি ফিলিপস

17

আপনি <classifier>ট্যাগ ব্যবহার করে সদ্য নির্মিত জারটি ব্যবহার করতে পারেন ।

<dependencies>
    <dependency>
        <groupId>your.group.id</groupId>
        <artifactId>your.artifact.id</artifactId>
        <version>1.0</version>
        <type>jar</type>
        <classifier>jar-with-dependencies</classifier>
    </dependency>
</dependencies>

14

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

  1. একটি সাধারণ মাভেন জার-প্রজেক্ট তৈরি করুন, এটি আপনার জার ফাইলটি তৈরি করবে (নির্ভরতা ছাড়াই)।

  2. এছাড়াও, একটি মাভেন ওয়ার-প্রজেক্ট সেটআপ করুন (কেবল একটি খালি এসসিআর / মেইন / ওয়েব অ্যাপ / ওয়েবে-আইএনএফ / ওয়েব.এক্সএমএল ফাইল সহ, যা মাভেন-বিল্ডে কোনও সতর্কতা / ত্রুটি এড়াতে পারে), এতে কেবল আপনার জার-প্রকল্প রয়েছে নির্ভরতা, এবং আপনার জার-প্রকল্পকে <module>আপনার যুদ্ধ-প্রকল্পের আওতায় পরিণত করুন। (এই যুদ্ধ-প্রকল্পটি আপনার সমস্ত জার-ফাইল নির্ভরতা জিপ-ফাইলের মধ্যে মোড়ানোর জন্য কেবল একটি সহজ কৌশল))

  3. যুদ্ধ-ফাইল তৈরি করতে যুদ্ধ-প্রকল্প তৈরি করুন।

  4. মোতায়েনের পদক্ষেপে, আপনার .war-ফাইলটিকে * .zip এ নাম পরিবর্তন করুন এবং এটি আনজিপ করুন।

আপনার জার এবং আপনার অ্যাপ্লিকেশনটি চালানোর জন্য প্রয়োজনীয় সমস্ত নির্ভরতা সহ আপনার এখন একটি lib- ডিরেক্টরি থাকা উচিত (যা আপনি এটি যেখানে চান সেখানে যেতে পারেন):

java -cp 'path/lib/*' MainClass

(ক্লাসপথের ওয়াইল্ডকার্ড জাভা-6 বা তার বেশি ক্ষেত্রে কাজ করে)

আমি মনে করি এটি ম্যাভেনে সেটআপ করা উভয়ই সহজ (এসেম্বলি প্লাগইনটির সাথে জগাখিচু করার দরকার নেই) এবং আপনাকে অ্যাপ্লিকেশন-কাঠামোর একটি পরিষ্কার দৃষ্টিকোণ দেয় (আপনি সরল দৃশ্যে সমস্ত নির্ভরশীল জারের সংস্করণ সংখ্যাগুলি দেখতে পাবেন এবং একক জার-ফাইলে সবকিছু আটকে রাখা এড়ান)।


এটি কি একলাইপস "রান্নেবল জারের রফতানি" এর মতো? কারণ এর সাহায্যে আপনি "জেআর এর সাথে সমস্ত নির্ভরতা প্যাকেজ করতে" চয়ন করতে পারেন, আপনি তারপরে আপনার জারের সাথে প্রজেক্ট-লিব ফোল্ডারে সমস্ত নির্ভরতা পাবেন।
ওয়েস্টার্নগুন

@ ফেইথরাইপার - এটি "একই" হতে পারে, আমি কখনই এটি চেষ্টা করি নি। তবে আমি অনুমান করি যে আপনি যদি Eclipse ব্যবহার করেন তবে এটি সহজে স্ক্রিপ্টযোগ্য নয়, যা আপনি যদি একটি স্বয়ংক্রিয় বিল্ড + স্থাপনা-পাইপলাইন বাস্তবায়ন করতে চান তবে এটি প্রয়োজনীয় । উদাহরণস্বরূপ, জেনকিন্স-সার্ভারকে আপনার গিট উত্স-সংগ্রহস্থল বা অন্য জাতীয় কোনও কাজ করতে দিন।
রোপ করুন

12

http://fiji.sc/Uber-JAR বিকল্পগুলির একটি দুর্দান্ত ব্যাখ্যা সরবরাহ করে:

উবার-জেআর নির্মাণের জন্য তিনটি সাধারণ পদ্ধতি রয়েছে:

  1. অচ্ছায়। সমস্ত JAR ফাইল আনপ্যাক করুন, তারপরে এগুলিকে একটি একক জেআর-এ পুনরায় বলুন।
    • প্রো: জাভার ডিফল্ট ক্লাস লোডার নিয়ে কাজ করে।
    • কন: একাধিক জেআর ফাইলগুলিতে একই পাথ (যেমন, মেটা-আইএনএফ / পরিষেবাদি / জাভ্যাক্স.সক্রিপ্ট.স্প্রিপ্টজিনফ্যাক্টরি) সহ উপস্থিত ফাইলগুলি একে অপরকে ওভাররাইট করবে, ফলস ত্রুটিযুক্ত আচরণের ফলে।
    • সরঞ্জামগুলি: মাভেন অ্যাসেমব্লী প্লাগইন, ক্লাসওয়ার্ল্ডস উবারজার
  2. ছায়াময়। আনস্যাডড একই, তবে সমস্ত নির্ভরতার সমস্ত প্যাকেজটির নাম পরিবর্তন করুন (অর্থাত্ "শেড")।
    • প্রো: জাভার ডিফল্ট ক্লাস লোডার নিয়ে কাজ করে। কিছু (সমস্ত নয়) নির্ভরতা সংস্করণ সংঘর্ষ এড়িয়ে চলে।
    • কন: একাধিক জেআর ফাইলগুলিতে একই পাথ (যেমন, মেটা-আইএনএফ / পরিষেবাদি / জাভ্যাক্স.সক্রিপ্ট.স্প্রিপ্টজিনফ্যাক্টরি) সহ উপস্থিত ফাইলগুলি একে অপরকে ওভাররাইট করবে, ফলস ত্রুটিযুক্ত আচরণের ফলে।
    • সরঞ্জাম: মাভেন শেড প্লাগইন
  3. জারের জেআর। চূড়ান্ত জেআর ফাইলটিতে এম্বেড থাকা অন্যান্য জেআর ফাইল রয়েছে।
    • প্রো: নির্ভরতা সংস্করণ সংঘর্ষ এড়ায়। সমস্ত সংস্থান ফাইল সংরক্ষণ করা হয়।
    • কন: জড়িত জেআর ফাইলগুলি থেকে জাভা লোড করতে জাভাকে সক্ষম করতে একটি বিশেষ "বুটস্ট্র্যাপ" শ্রেণি লোডার বান্ডিল করা দরকার। ডিবাগিং ক্লাস লোডার ইস্যুগুলি আরও জটিল হয়ে ওঠে।
    • সরঞ্জামগুলি: Eclipse JAR ফাইল রফতানিকারক, ওয়ান-জেআর।

1
পরিষেবাদি সম্পর্কে পুরোপুরি সত্য নয়, শেড প্লাগইনটিতে ট্রান্সফর্মার রয়েছে এবং এর মধ্যে একটি হ'ল META-INF/servicesডিরেক্টরিতে থাকা ফাইলগুলির বিষয়বস্তুগুলি বোঝাতে । এখানে আরও তথ্য: maven.apache.org/plugins/maven-shade-plugin/example/…
ভিট্রো

7
        <!-- Method 1 -->
        <!-- Copy dependency libraries jar files to a separated LIB folder -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <excludeTransitive>false</excludeTransitive> 
                <stripVersion>false</stripVersion>
            </configuration>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- Add LIB folder to classPath -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                    </manifest>
                </archive>
            </configuration>
        </plugin>


        <!-- Method 2 -->
        <!-- Package all libraries classes into one runnable jar -->
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
            </configuration>
        </plugin>            

4

Eclipse Luna এবং m2eclipse সম্পর্কে আমার চূড়ান্ত সমাধান: কাস্টম ক্লাসলোডার (আপনার প্রকল্পে ডাউনলোড করুন এবং যুক্ত করুন, কেবলমাত্র 5 টি ক্লাস): http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/plain/org। eclipse.jdt.ui / jar% 20in% 20jar% 20loader / org / eclipse / jdt / অভ্যন্তরীণ / জারিনজারলদার / ; এই শ্রেণিবোর্ডার এক-জার শ্রেণিবদ্ধের মধ্যে খুব সেরা এবং খুব দ্রুত;

<project.mainClass>org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader</project.mainClass> <project.realMainClass>my.Class</project.realMainClass>

JIJConstants "Rsrc-Class-Path" তে "Class-Path" তে
mvn পরিষ্কার নির্ভরতা সম্পাদনা করুন: অনুলিপি-নির্ভরতা প্যাকেজ
একটি পাতলা ক্লাস লোডার সহ lib ফোল্ডারে নির্ভরতা সহ একটি জার তৈরি করা হয়

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/*</include>
            </includes>
            <targetPath>META-INF/</targetPath>
        </resource>
        <resource>
            <directory>${project.build.directory}/dependency/</directory>
            <includes>
                <include>*.jar</include>
            </includes>
            <targetPath>lib/</targetPath>
        </resource>
    </resources>
<pluginManagement>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>${project.mainClass}</mainClass>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>

                        <manifestEntries>
                            <Rsrc-Main-Class>${project.realMainClass}  </Rsrc-Main-Class>
                            <Class-Path>./</Class-Path>
                        </manifestEntries>

                    </archive>
                </configuration>
            </plugin>
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

মাভেন-নির্ভরতা-প্লাগইন <আউটপুটডাইরেক্টরি> কাজ করবেন না, সর্বদা "নির্ভরতা" ফোল্ডারে লিখুন
গ্লোকিও সাউথিয়ের

প্রকল্প নির্ভরতা সহ একটি অভ্যন্তরীণ ফোল্ডার "নির্ভরতা" সহ একটি জার তৈরি করুন এবং এটি MANIFEST.MF- এ রাখুন
গ্লোকিও সাউথিয়ের

<রিসোর্স> <রিসোর্স> <ডাইরেক্টরি> এসসিআর / মেইন / জাভা </ ডাইরেক্টরি> <অন্তর্ভুক্ত> <অন্তর্ভুক্ত> ** / * lude > << রিসোর্স> <রিসোর্স> <ডিরেক্টরি> এসসিআর / মেইন / রিসোর্স </ ডাইরেক্টরি> <ফিল্টারিং> সত্য </ ফিল্টারিং << অন্তর্ভুক্ত> <অন্তর্ভুক্ত> ** / * </ বি </ বি> অন্তর্ভুক্ত </ বি> অন্তর্ভুক্ত> <targetPath> মিতা -আইএনএফ / </ সার্বজনীনপথ </ রিসোর্স> <রিসোর্স> <ডিরেক্টরী> {{প্রজেক্ট.বিল্ড.ডাইরেক্টরি} / নির্ভরতা / </directory> <অন্তর্ভুক্ত> <অন্তর্ভুক্ত> * .জর </ অন্তর্ভুক্ত> </ অন্তর্ভুক্ত> < টার্গেটপথ> lib / </targetPath> </resource> </resferences> res
গ্লোকিও সাউথিয়ের

1
এই উত্তরের ভিত্তিতে আমি এই প্রকল্পটি তৈরি করেছি। পম
raisercostin

1

মাভেনকে একপাশে রেখে, আপনি মেইন জারের ভিতরে জেআর লাইব্রেরিগুলি রাখতে পারেন তবে আপনাকে নিজের শ্রেণিবদ্ধকারী ব্যবহার করতে হবে।

এই প্রকল্পটি দেখুন: ওয়ান-জেআর লিঙ্ক পাঠ্য


ওয়ান- জেআর
থিলো

0

এই পোস্টটি কিছুটা পুরানো হতে পারে তবে সম্প্রতি আমারও একই সমস্যা হয়েছিল। জন স্টাফারের প্রস্তাবিত প্রথম সমাধানটি একটি ভাল, তবে আমি এই বসন্তে কাজ করায় আমার কিছু সমস্যা হয়েছিল। বসন্তের নির্ভরতা-জারগুলি আমি ব্যবহার করি কিছু সম্পত্তি ফাইল এবং এক্সএমএল-স্কিমার ঘোষণাপত্র রয়েছে যা একই পথ এবং নাম ভাগ করে দেয়। যদিও এই জারগুলি একই সংস্করণ থেকে এসেছে, পাত্র-নির্ভর-নির্ভরতা মেভেন-লক্ষ্যটি শেষ ফাইলটির সাথে এই ফাইলগুলি ওভাররাইট করে।

শেষ পর্যন্ত, স্প্রিং জারগুলি সঠিক বৈশিষ্ট্যগুলির ফাইলগুলি খুঁজে না পাওয়ায় অ্যাপ্লিকেশন শুরু করতে সক্ষম হয় নি। এই ক্ষেত্রে রপের সমাধান প্রস্তাব আমার সমস্যার সমাধান করেছে।

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


0

এই উত্তরটি দেখুন:

আমি এমন একটি ইনস্টলার তৈরি করছি যা জাভা জেআর ফাইল হিসাবে চলবে এবং এটি WAR এবং JAR ফাইলগুলি ইনস্টলেশন ডিরেক্টরিতে যথাযথ জায়গায় আনপ্যাক করা দরকার। নির্ভরতা প্লাগইনটি অনুলিপি প্যাকেজের সাথে প্যাকেজ পর্যায়ে ব্যবহার করা যেতে পারে এবং এটি ম্যাভেন সংগ্রহশালায় যে কোনও ফাইল ডাউনলোড করবে (ওয়ার ওয়ার্ডগুলি সহ) এবং আপনার যেখানে প্রয়োজন সেখানে সেগুলি লিখবে। আমি আউটপুট ডিরেক্টরিটি $ {प्रोजेक्ट.বিল্ড.ডাইরেক্টরি} / ক্লাসে পরিবর্তন করেছি এবং তারপরে ফলাফলটি হ'ল স্বাভাবিক জেআর টাস্কটিতে আমার ফাইলগুলি ঠিক আছে। তারপরে আমি সেগুলি আহরণ করে ইনস্টলেশন ডিরেক্টরিতে লিখতে পারি।

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
    <execution>
        <id>getWar</id>
        <phase>package</phase>
        <goals>
            <goal>copy</goal>
        </goals>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>the.group.I.use</groupId>
                    <artifactId>MyServerServer</artifactId>
                    <version>${env.JAVA_SERVER_REL_VER}</version>
                    <type>war</type>
                    <destFileName>myWar.war</destFileName>
                </artifactItem>
            </artifactItems>
            <outputDirectory>${project.build.directory}/classes</outputDirectory>
        </configuration>
    </execution>
</executions>


0

ধন্যবাদ আমি নীচে পিওএম.এক্সএমএল ফাইল এবং এমপি সমস্যার সমাধানে স্নিপেট যুক্ত করেছি এবং সমস্ত নির্ভরশীল জারগুলি অন্তর্ভুক্ত ফ্যাট জারের ফাইল তৈরি করি।

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <descriptorRefs>
                <descriptorRef>dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
    </plugin>
</plugins>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.