مقدمة
عادةً ما يتم تشغيل مشاريع التمهيد الربيعي في خوادم Tomcat المدمجة أو الرصيف ، ونادراً ما تستخدم حزم الحرب للنشر على حاويات الخدمة الخارجية. حتى لو وضعت في Linux ، فإنها عادة ما تبدأ فئة التطبيق مباشرة. ومع ذلك ، في بعض الأحيان نحتاج إلى النشر على الخوادم الخارجية ، وهو أمر مزعج بعض الشيء بالنسبة للحذاء الربيعي.
لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية معًا.
البيان البيئي:
JDK: 1.8
الخادم: Alibaba Cloud ، Ubuntu 16.04
سبرينغ بوت: 1.5.9.release
غاية
حزمة Springboot في tomcat على الخادم البعيد.
pom.xml
<؟ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 <soph> 1.0-snapshot </version> <cplaging> WAR </placing> <Part> <roupiD> org.springframework.boot </rougeid> <StifactId> Spring-Boot-Starter-Parent </sulting> <splice> <splect> 1.5.9 <Rependencies> <Rependency> <roupiD> org.springframework.boot </rougiD> <Stifactid> Spring-Boot-Starter-Web </shintifactid> </repreadency <StifactId> Spring-boot-starter-tomcat </stifactid> <scope> متوفر </scope> </premotency> <reperency> <roupled> org.mybatis.spring.boot </rougiD> </intifactid> mybatis-spring-boot-starter </artifactid> <Rependency> <roupeD> org.springframework.boot </rougiD> <artifactid> Spring-Boot-Starter-Thymeleaf </stifactid> </sependency> <!-تكوين الوسيلة غير المتراكمة من thymelaef ، <StifactId> nekohtml </shintifactid> <الإصدار> 1.9.22 </version> </sependency> <sependency> <roupled> org.springframework.boot </rougeid> <StifactId> spring-boot-starter-jdbc </sensifactid> <StifactId> mybatis-spring-boot-starter </stifactid> <الإصدار> 1.3.1 </version> </repreadency> <reperency> <roupiD> org.springframework.boo </groupid> <Stifactid> spring-boot-boot-test </artifactid> <scope> <roupl> mysql </rougiD> <StifactId> mysql-connector-java </stifactid> <الإصدار> 6.0.6 <sersion> </dependency> <!-Alibaba Connection Pool-> <sperency> <roupencid> com.alibaba </groupid> fastjson-> <reperency> <roupend> com.alibaba </rougiD> <intifactid> fastjson </shintifactid> <sophy> 1.2.40 </splement <sophy> 1.5.9 <soph> 2.4 </version> <fignituration> <FisalOnMissingWebxMl> false </failOnMissingWebxMl> </ispification> </spliexin> </sugionins> </build> </project>
يلاحظ
1. لا يمكن لمكون Maven استخدام المكون الإضافي الذي يأتي مع Springboot. لقد استخدمت هذا البرنامج المساعد للإبلاغ عن الخطأ التالي
فشل في تنفيذ الهدف org.apache.maven.plugins: Maven-Jar-Plugin: 2.6: Jar (الافتراضي-JAR) في المشروع: التنفيذ الافتراضي-JAR من الهدف org.apache.maven.plugins: Maven-Jar-Plugin org.apache.maven.plugins: Maven-Jar-Plugin: 2.6: jar: java.lang.ExceptionInitializerError: null
تعديل البرنامج المساعد Maven إلى
<Unction> <roupiD> org.apache.maven.plugins </rougiD> <ArtifactId> maven-war-plugin </shintifactid> <sored> 2.4 </splice> <signturation> <SailonMissingWebxml> false </ishailonmissingwebxml> </soppult> </plugin
تجدر الإشارة إلى أنه لأنني لا أملك web.xml. لذا أضف المزيد
<iscondation> <AblonMissingWebxMl> false </failonMissingWebxMl> </isplication>
2.
<Tuption> <InglName> xxx </initalname> </buy>
يجب أن يكون اسم FinalName متسقًا مع مسار السياق في التطبيق.
3. تحتاج إلى تغيير تبعية tomcat لتجميع الوقت
<Rependency> <roupend> org.springframework.boot </rougeid> <intifactid> Spring-Boot-Starter-Tomcat </suntifactid> <scope> متوفر </scope> </sependency>
4. فئة دخول سبرينغ بوت ، وراثي springbootservletinitializer والكتابة فوقها
تكوين springapplicationbuilder المحمي (تطبيق springapplicationBuilder) {return application.sources (mainapplication.class) ؛ }حيث mainapplication.class هي فئة دخول Springboot.
علية
انتقل إلى دليل الجذر للمشروع. إذا كنت تستخدم الفكرة ، أدخل مباشرة هنا:
MVN Clean Package -DSKIPTESTS
بعد التغليف ، سيتم إنشاء ملف .war المقابل في المجلد الهدف للمشروع.
رفع
ما عليك سوى رمي ملف الحرب تحت WebApps من Tomcat.
القضايا التي لم يتم حلها:
أردت أصلاً أن أدخلها في حزمة جرة. ثم ابدأ Springboot مباشرة. وصلت وو ناي إلى حزمة جرة واستمرت في الإبلاغ عن الأخطاء في مكون مافن. لا يمكن كتابتها إلا في حزم الحرب وتحميلها إلى Tomcat.
إذا قام أي شخص بحل هذه المشكلة ، فيرجى إبلاغي بذلك.
في هذه المقالة ، يقال أن هذا خطأ ...
https://issues.apache.org/jira/browse/msite-724
تجديد. . . .
تم حل المشكلة. يمكنك حزمة Springboot في جرة مباشرة وتشغيلها.
سبب:
<uccedins> <lopin> <roupiD> org.springframework.boot </rougiD> <StifactId> Spring-Boot-Maven-Plugin </stifactid> </spliexin> </plugins>
المثال الرسمي المقدم من Springboot هو استخدام هذا البرنامج المساعد.
ستقوم Maven تلقائيًا بتنزيل إصدار Maven-Jar-Plugin الإصدار 2.4 و 2.6.
ومع ذلك ، سوف يعتمد Maven على الإصدار 2.6 افتراضيًا. . لم ألاحظ الخطأ الذي أبلغ عنه المشروع في البداية أن Maven-Jar-Plugin 2.6Jar غير متوافق. أدى هذا إلى عدم العثور على الخطأ. .
وهذا هو ، الإصدار 2.6 غير متوافق. فقط قم بتغييره يدويًا إلى الإصدار 2.4. كما هو موضح أدناه:
<uccedins> <lopin> <roupiD> org.springframework.boot </groupId> <StifactId> Spring-boot-maven-plugin </shintifactid> </spliexin> <clupin> <roupiD> org.apache.maven.plugins </groupiD> </sultwin> </sults>
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.