আমি আমার স্বতন্ত্র অ্যাপ্লিকেশনটিতে মাভেন ব্যবহার করছি, এবং আমি এখানে উত্তরগুলির একটিতে উল্লিখিত হিসাবে আমার জেআর ফাইলের সমস্ত নির্ভরতা একটি লাইব্রেরি ফোল্ডারের ভিতরে প্যাকেজ করতে চাই:
মাভেন ব্যবহার করে নির্ভরতার সাথে আমি কীভাবে এক্সিকিউটেবল জেআর তৈরি করতে পারি?
আমি চাই আমার চূড়ান্ত জেআর ফাইলটিতে একটি লাইব্রেরি ফোল্ডার রয়েছে যা জেআর ফাইল হিসাবে নির্ভরতা ধারণ করে, maven-shade-plugin
এটি এমএম 2 ফোল্ডারে মাভেন হায়ারার্কির মতো ফোল্ডারের আকারে নির্ভরতাগুলি কী রাখে তা পছন্দ করে না।
ঠিক আছে, আসলে বর্তমান কনফিগারেশনটি আমি যা চাই তা করি তবে অ্যাপ্লিকেশনটি চালানোর সময় জেআর ফাইলগুলি লোড করার ক্ষেত্রে আমার একটি সমস্যা হচ্ছে। আমি ক্লাস লোড করতে পারি না।
এখানে আমার কনফিগারেশন:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.myapp.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>sources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
প্রকল্পটি Eclipse থেকে সূক্ষ্মভাবে চলে এবং জার ফাইলগুলি আমার চূড়ান্ত জেআর ফাইলের ভিতরে লাইব্রেরী ফোল্ডারে আমার পছন্দ হিসাবে রাখা হয়, তবে লক্ষ্য ফোল্ডার থেকে চূড়ান্ত জেআর ফাইল চালানোর সময় আমি সর্বদা পেতে পারি ClassNotFoundException
:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.myapp.MainClass. Program will exit.
আমি কীভাবে এই ব্যতিক্রমটি ঠিক করতে পারি?
com.myapp.MainClass
হচ্ছে মূল শ্রেণীর সন্ধান করা হচ্ছে, নয় com.tastycafe.MainClass
।