Prefácio
Os projetos de inicialização da primavera geralmente são executados em servidores incorporados do TomCat ou Jetty e raramente usam pacotes de guerra para implantar em contêineres de serviço externos. Mesmo se colocado no Linux, eles geralmente iniciam a classe de aplicativo diretamente. No entanto, às vezes precisamos implantar para servidores externos, o que é um pouco problemático para a inicialização da primavera.
Não vou dizer muito abaixo, vamos dar uma olhada na introdução detalhada juntos.
Declaração Ambiental:
JDK: 1.8
Servidor: Alibaba Cloud, Ubuntu 16.04
Springboot: 1.5.9.Release
Propósito
Pacote Springboot no tomcat no servidor remoto.
pom.xml
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <lodelversion> 4.0.0 </modelversion> <vroupId> waBao </groupidrsion> 4.0.0 </modelversion> <vroupId> waBao </groupidrsion> 4.0.0 </modelversion> <voupId> waBao </groupidrsion> 4.0. <Versão> 1.0-SNAPSHOT </Version> <batyaging> war </acheging> <air> <puriid> org.springframework.boot </groupiD> <TRATIFACTID> Spring-boot-starter-parent </artifactId> <Versão> 1.5.9.9. <Dependences> <Depencency> <voundId> org.springframework.boot </groupiD> <TRATIFACTID> Spring-boot-starter-web </artifactId> </dependency> <!-remova o suporte do tomcat e altere o suporte ao tempo compilador-> <Pendency> <vroupid> org.sPringFamework.Blot </groupy> </ArtifactId> <coot-boot-starter-tomcat </artifactId> <cope> fornecido </scope> </dependency> <pendency> <puperid> org.mybatis.spring.boot </groupid> <sourfactid> mybatis-spring-boot-starter </artifactId> 1. versão <versão <versão <versão <versão <versão <sourfactid> <Depencency> <GroupID> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-tymeleaf </storkactid> </dependency> <!-Configurando o modo não rigoroso de timelura, requer a dependência-> <Pendency> <vroupId> net.sourcege.nn. <TeRtifactId> nekohtml </artifactId> <versão> 1.9.22 </version> </dependency> <pendency> <puperid> org.springframework.boot </groupid> </dependência> primavera-boot-starter-jdbc </stifactid> </dependência> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <COPE> TEST </SCOPE> </DEPENCIDADE> <Depency> <PuerpId> mysql </frugiD> <ArtifactId> mysql-conector-java </artifactId> <versão> 6.0.6 </version> </dependency> <!-Alibaba Pool-> <pendency> <brugId> com.alibaba </dependency> <!-alibaba pool-> <pendency> <brugId> com.alibaba </dependence> <! <Versão> 1.1.5 </versão> </dependency> <!-fastjson-> <pendency> <puperid> com.alibaba </groupid> <stifactId> fastjson </artifactId> <sipers> 1.2.40 </sipers> </dependency> <!-Hot Depplement-> <pendency> <broupId> oug.sing.sing.sfring. <TRAFACTID> Spring-boot-devtools </storkactid> <versão> 1.5.9.Release </sipers> <cptional> true </pptional> <cope> true </scope> </dependency> </dependências> <bruct> <finallName>/testWeb </finalName> <Ingin> <vgin> <TarfactId> maven-war-plugin </storkactId> <versão> 2.4 </version> <figuration> <failonMissingwebxml> false </failommissingwebxml> </figature> </flugin> </fligins> </filt> <//project>
Perceber
1. O plug-in do Maven não pode usar o plug-in que vem com o Springboot. Eu usei este plugin para relatar o seguinte erro
Falha ao executar o objetivo org.apache.maven.plugins: maven-jar-plugin: 2.6: jar (padrão-jar) no projeto do projeto: execução padrão-jar de meta org.apache.maven.plugins: maven-jar-plugin: 2.6: jar falhou: uma API org.apache.maven.plugins: maven-jar-plugin: 2.6: jar: java.lang.ExceptioninInitializerError: null
Modificar o plugin maven para
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration></plugin>
Deve -se notar que, porque não tenho web.xml. Então adicione mais
<figuration> <ailonMissingWebxml> false </failonMissingWebxml> </figuration>
2.
<FUILD> <FinalName> xxx </finalName> </fruct>
FinalName precisa ser consistente com o contexto em aplicação.yml.
3. Você precisa mudar a dependência do tomcat para compilar o tempo
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-tomcat </sutifactId> <coCope> fornecido </scope> </pendencence>
4. Classe de entrada de trampolim, herdeira de alerta e substituição e substituição
SpringApplicationBuilder protegido Configurar (SpringApplicationBuilder Application) {return Application.sources (mainApplication.class); }Onde MainApplication.class é a classe de entrada do Springboot.
Pacote
Vá para o diretório raiz do projeto. Se você estiver usando a ideia, digite diretamente aqui:
pacote limpo mvn -Dskiptests
Após a embalagem, o arquivo .war correspondente será gerado na pasta de destino do projeto.
Carregar
Basta jogar o arquivo de guerra nos WebApps de Tomcat.
Questões não resolvidas:
Originalmente, eu queria transformá -lo em um pacote JAR. Em seguida, inicie o trampolim diretamente. Wu Nai entrou em um pacote JAR e continuou relatando erros no plug-in maven. Ele só pode ser digitado em pacotes de guerra e carregado para o tomcat.
Se alguém resolveu esse problema, por favor me avise.
Neste artigo, diz -se que este é um bug ...
https://issues.apache.org/jira/browse/msite-724
renovar. . . .
O problema foi resolvido. Você pode embalar o trampolim diretamente e executá -lo.
razão:
<flugins> <flugin> <voundid> org.springframework.boot </frupid> <stifactId> spring-boot-maven-plugin </stutifactId> </plugin> </flugins>
O exemplo oficial dado pelo Springboot está usando este plug -in.
O Maven baixará automaticamente o Maven-Jar-Plugin versão 2.4 e 2.6 versões.
No entanto, o MAVEN confiará na versão 2.6 por padrão. . Não notei que o erro relatado pelo projeto no início que o Maven-Jar-Plugin 2.6jar é incompatível. Isso resultou na não ser encontrada erro. .
Ou seja, a versão 2.6 é incompatível. Apenas mude manualmente para a versão 2.4. Como mostrado abaixo:
<lugins> <lugin> <plugId> org.springframework.boot </frupid> <stifactId> spring-boot-maven-plugin </stutifactId> </plugin> <lplugin> <plugiTId> org.apache.maven.plugins </grupidid> <turfactId> mavern-jars- japache.maven.plugins </grupo> </plugin> </flugins>
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.