دون الاعتماد على أي حزمة خارجية ، كيف يمكن أن يولد Maven جرة قابلة للتنفيذ؟
إذا كان POM لا يحتوي على أي مراجع ، فما عليك سوى إضافة maven-jar-plugin إلى POM.
عملية الحل
قم بإنشاء مشروع جديد ، فئة وظيفة رئيسية واحدة فقط: xixi.java ، إخراج Xixi Say: hello
تم تكوين POM على أنه
<ProwED> com.paxi </rougiD> <StifactId> xixi </shintifactid> <soph> 1.0-snapshot </version> <packaging> jar </packaging> <name> xixi </mame> <Url> http://maven.apache.org </url> <project.build.sourceencoding> utf-8 </project.build.sourceEncoding> </sfressions>
تنفيذ mvn clean install لإنشاء حزمة JAR xixi-1.0-SNAPSHOT.jar, تنفيذ أمر JAR ، وتنفيذ خطأ التغذية المرتدة
Java -jar XIXI-1.0-SNAPSHOT.JARXIXI-1.0-SNAPSHOT.JAR ليس لديه سمة من البيان الرئيسي
إلغاء ضغط جرة جرة XVF XIXI-1.0-SNAPSHOT.JAR لعرض ملفات الملف المقابلة.
Cat Meta-Inf/manesest.mfmanifest-version: 1.0archiver-version: Plexus Archiverbuilt-by:
إضافة مكون إضافي maven-jar-plugin في POM
<Build> <uccedins> <sucplin> <rougiD> org.apache.maven.plugins </groupId> <StifactId> maven-jar-plugin </shinclassid> <soph> </sultwin> </sullsins> </build>
تنفيذ الإخراج الناجح
Java -Jar XIXI-1.0-SNAPSHOT.JAR
xixi قل: مرحبا
ثم تحقق من ملف measest.mf الذي تم إلغاء الضغط عليه
Cat Meta-Inf/manesest.mfmanifest-version: 1.0built-by: paxicreated-by: apache maven 3.3.3build-jdk: 1.8.0_121main-class: com.paxi.xixi // تمت إضافة
إضافة تبعيات في POM ، كيف ينشئ Maven الجرار القابلة للتنفيذ؟
تحتاج إلى استخدام الإضافات Maven-Dependency-Plugin و Maven-Jar-Plugin.
عملية الحل
أضف فقط حزمة Apache-Commons إلى POM
<ProwED> com.paxi </rougiD> <StifactId> xixi </shintifactid> <soph> 1.0-snapshot </version> <packaging> jar </packaging> <name> xixi </mame> <Url> http://maven.apache.org </url> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </sependencies> <reperationies> <preemid> <roupiD> org.apache.commons </rougiD> <StifactId> commons-lang3 </attifactid>
استخدم فئة في الحزمة المشتركة في الرمز
الفراغ الثابت العام (سلسلة [] args) {string words = "xixi say: hello" ؛ if (stringUtils.isNotBlank (Words)) {system.out.println (Words) ؛ }}حدث خطأ بعد التغليف
Java -Jar XIXI-1.0-SNAPSHOT.JAR
استثناء في الموضوع "الرئيسي" java.lang.noclassdeffounderror: org/apache/commons/lang3/stringUtils
في com.paxi.xixi.main (xixi.java:11)
سبب: java.lang.classnotfoundexception: org.apache.commons.lang3.stringutils
في java.net.urlclassloader.findClass (urlClassloader.java:381)
في java.lang.classloader.loadClass (classloader.java:424)
في Sun.Misc.Launcher $ AppClassloader.loadClass (Launcher.java:331)
في java.lang.classloader.loadClass (classloader.java:357)
... 1 أكثر
أضف مكونات إضافية في بوم
<Build> <ultion> <roupiD> org.apache.maven.plugins </groupId> <StifactId> maven-jar-plugin </stifactid> <soreg> <ClassPathPrefix> libs/</slasspathprefix> </mantest> </rarchive> </isplicturation> </sultcin> <clupin> <rouctid> org.apache.maven.plugins </roucid> <SextifactId> maven-pependent-plugin </tevactid> <id> copy-dependents </id> <phase> package </phase> <irod> <irod> pependers copy </sivel> </forts> <configuration> <utputdirectory> $ {project.build.directory}/libs </outtractdirectory> </configuration> </encorpions>ركض مرة أخرى
Java -Jar XIXI-1.0-SNAPSHOT.JARXIXI قل: مرحبًا
ملف manceest.mf هو
Cat Meta-Inf/manesest.mfmanifest-version: 1.0built-by: paxiclass-path: libs/commons-lang3-3.7.jarcreated-by: apache maven
ليس فقط استخدام التبعيات في POM ولكن أيضا الجرار ثلاث أحزاب. كيف يولد Maven الجرار القابلة للتنفيذ؟
تتطلب عملية التجميع تعديل المكون الإضافي للتجميع maven-compiler-plugin . عند التشغيل ، تحتاج إلى إضافة دليل من الجرار المكونة من ثلاث أحزاب لتنفيذ الأوامر.
java -jar -djava.ext.dirs = lib/ target/ xixi -1.0 -snapshot.jarxixi قل: هيلوبابا يقول: مرحبا
عملية التجميع والقرار
رمز الاختبار هو
الفراغ الثابت العام (سلسلة [] args) {string words = "xixi say: hello" ؛ if (stringUtils.isNotBlank (Words)) {system.out.println (Words) ؛ } papa.say () ؛ }استخدم الأمر MVN لتنفيذ الخطأ
[خطأ] فشل في تنفيذ الهدف org.apache.maven.plugins: Maven-Compiler-Plugin: 3.1: ترجمة (موسعة افتراضية) على المشروع التاسع عشر: فشل التجميع
xixi/src/main/java/com/paxi/xixi.java: [15،9] رمز غير موجود
أضف البرنامج المساعد إلى POM
<rector> <roupiD> org.apache.maven.plugins </rougiD> <intifactid> maven-compiler-plugin </stifactid> <sored> 3.1 </spermant> <consiguration> <compilerargs> <arg> -djava.ext.dirs = lib//////argurgs>
تنفيذ الحزمة
Java -jar Target/xixi-1.0-snapshot.jarxixi say: helloException in thread "main" java.net.urlclassloader.findclass (urlclassloader.java:381) في java.lang.classloader.loadclass (classloader.java:424) في sun.misc.launcher $ appclaslass. java.lang.classloader.loadclass (classloader.java:357) ... 1 آخر
أضف معلمات للحصول على النتيجة
java -jar -djava.ext.dirs = lib/ target/ xixi -1.0 -snapshot.jarxixi قل: هيلوبابا يقول: مرحبا
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.