springboot打war包汇总

概述

  第一次用maven工具打war包,出现各种各样的问题,做个问题记录方便下次查看

maven

  一开始用的maven是springboot默认的,在.m2下,要打包时才发现没有mvn指令。索性自己就重新装个maven,去官网下载,我安装的是3.5.2版本。因为maven仓库默认是国外的,需要更改为国内的镜像地址,方便建立本地的仓库,于是更改setting.xml文件,在<mirrors>标签内添加一个新的标签,完成之后自己配置环境变量,下图是lz自己电脑的配置,根据自己安装目录进行,完成后测试下maven -version

    <mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>

环境变量

 

 

 

 

 

 

指定要下载的本地仓库地址,所以添加本地地址

<localRepository>D:\maven\repository</localRepository>

IDEA配置maven

  除此之外,IDEA也需要更改默认的maven地址,home directory选择本地maven,file 选择本地maven的配置文件,local repository选择本地仓库路径

pom.xml修改

重新加载maven->reimport,下载本地仓库时间较慢,慢慢等待吧。本地仓库下载完成后,必须修改打包形式,在pom.xml内添加

<packaging>war</packaging>

因为springboot整合有tomcat的容器如果打成war包放置在外部服务器的tomcat下,将会出现冲突,所以移除内部的tomcat容器,在pom.xml下添加

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>

还需要添加servlet-api依赖

        <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>

如果不想用maven打包出来的war名称,还得添加自己自定义的名称

<finalName>seasgame</finalName><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><encoding>${project.build.sourceEncoding}</encoding><source>1.7</source><target>1.7</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><testFailureIgnore>true</testFailureIgnore></configuration></plugin></plugins></pluginManagement>

pom.xml修改到这里,我们开始进行打包,在pom.xml那层目录,执行 mvn clean package

启动类修改

public class SpringBootStartApplication extends SpringBootServletInitializer
{@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder){// 注意这里要指向原先用main方法执行的SeasgameApplication启动类return builder.sources(SeasgameApplication.class);}
}

问题汇总

因为移除了tomcat,所以跟tomcat依赖相关的得更改。

ERROR: expected START_TAG or END_TAG not TEXT

这是因为pom.xml的文件内,有不合法的语法,也可以看提示哪一行出的问题,建议处理方法将idea的检验级别拉高,有问题就会一下子报红。将标签内容补全,重新在进行打包

ERROR:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

这是因为我们需要之指定一个符合配置的JDK环境,这个问题一般是因为装有多个版本的jdk引发的,idea的maven配置Runner,需要配置哪个版本,最好都一致。

ERROR:Unsupported major.minor version 52.0

版本信息不一致,低版本编译高版本出的问题,springboot我建议用tomcat 8 以上和jdk8以上,因为tomcat7太过老旧了,可能会出现各种不兼容的问题,升级后一般能解决很多问题。

ERROR: Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5

这是被某个程序占用了,我们重新启动下idea,甚至还无法解决可以重启。

在打包的时候出现这几个问题,一 一解决后要部署到服务器。因为服务器还是用jdk7和tomcat7。。各种版本不兼容,很头疼。只能自己在装一个jdk8 和tomcat8,在tomcat8内指定jdk版本运行。

在tomcat8的bin下修改 setclasspath.sh 在第一行添加

export JAVA_HOME=/usr/local/jdk1.8.0_172/
export JAVA_HOME=/usr/local/jdk1.8.0_172/jre

如何还不行,在catalina.sh内也添加上。因为有多个版本tomcat所以端口号会冲突,修改server里的端口号。。可参考这篇文件

https://blog.csdn.net/Jay_1989/article/details/52870760

好了,启动tomcat8,发现

ERROR:Field xxxService in 某个类 required a single bean, but 3 were found

这是因为我在内部有个工程类

private EntityManager entityManager;

找不到这个bean,将注解弄掉。顺利跑起来了,第一次打war包花了一下午的时间,终于成功跑起来,访问127.0.0.1:端口号

 

转载于:https://www.cnblogs.com/dslx/p/11465842.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习Nutch不错的系列文章

1&#xff09;Nutch1.2二次开发详细攻略 &#xff08;1&#xff09;Windows平台下Cygwin环境的搭建 地址&#xff1a;http://www.cnblogs.com/streamhope/archive/2011/07/27/2118397.html &#xff08;2&#xff09;Windows平台下Nutch1.2的搭建 地址&#xff1a;http://www.c…

[CareerCup] 9.4 Subsets 子集合

9.4 Write a method to return all subsets of a set. LeetCode上的原题&#xff0c;请参见我之前的博客Subsets 子集合和Subsets II 子集合之二。 解法一&#xff1a; class Solution { public:vector<vector<int> > getSubsets(vector<int> &S) {vecto…

新增一自增列

/// <summary> /// 为m_DataTable新增一自增列 /// </summary> private void AddAutoIncrementComunm() { DataColumn col new DataColumn(NewColumnName, typeof(System.Int32)); col.AutoIncrement t…

解决Lync2010错误:无法同步通讯簿信息

1、修改注册表&#xff1a;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 新建DWORD值起名为DisableLoopbackCheck 数值为1&#xff1b; 2、检查一下你的iis 里面的虚拟目录abs&#xff0c;和你共享文件夹的的权限是否允许所有的域用户访问。 3、设置好以后重启i…

Java 8 stream forEach filter anyMatch

forEach的循 someObjects.forEach(obj -> { //to do something }) 如果这个循环的目标是找到匹配某个谓词的第一个元素 Optional<SomeObject> result someObjects.stream().filter(obj -> some_condition_met).findFirst(); 如果你只是想知道集合中是否有一个元素…

大数据初探——Hadoop历史

Hadoop是一个开源的分布式框架&#xff0c;是Apache下的一个开源项目。Hadoop运行可以在成千上万个普通机器节点组成的集群上&#xff0c;通过分布式的计算模型和存储模型来处理大数据集。Hadoop具有高容错性、工作在普通的机器节点上扩展性强等众多的优点&#xff0c;是企业选…

Dynamic Data Web Application编译是报GetActionPath调用模糊解决办法

新建的Dynamic Data Web Application编译时报错 Error 3 The call is ambiguous between the following methods or properties: System.Web.DynamicData.MetaTable.GetActionPath(string, System.Collections.Generic.IList<object>) and System.Web.DynamicData.MetaTa…

BMP格式图像的显示

使用多文档编程 也可以使用单文档编程 建立一个DIB图像的显示类 ImageDib 成员变量&#xff1a; 4个指针&#xff1a; LPBYTE m_lpDib; //指向DIB的指针    LPBITMAPINFOHEADER m_lpBmpInfoHead; //图像信息头指针 LPRGBQUAD m_lpColorTable; //图像颜色表指针 …

JPA多条件复杂SQL动态分页查询

概述 ORM映射为我们带来便利的同时&#xff0c;也失去了较大灵活性&#xff0c;如果SQL较复杂&#xff0c;要进行动态查询&#xff0c;那必定是一件头疼的事情&#xff08;也可能是lz还没发现好的方法&#xff09;&#xff0c;记录下自己用的三种复杂查询方式。 环境 springBoo…

上下文环境

##执行上下文环境 在一段JS真正运行之前浏览器已经做了一些准备工作&#xff1a; 1.变量&#xff1a;变量的申明&#xff0c;默认值为undefined&#xff1b; 2.this&#xff1a;赋值&#xff1b; 3.函数申明&#xff1a;赋值 变量&#xff1a; console.log(a) ---…

dbgrideh的功能

dbgrideh的功能 a.点标题排序&#xff1a; 1.eh的optionsEh 的dghAutoSortMarking True 2 eh的sortlocal true 3.列的title的toolbutton为true 4。eh的optionsEh 的dghMultiSortMarking True 多个字段一起排(按CTRLMouse) 5.uses加相应的驱动ehlibado/ehlibbde b.模糊过滤: …

深入A*算法

一、前言 在这里我将对A*算法的实际应用进行一定的探讨&#xff0c;并且举一个有关A*算法在最短路径搜索的例子。 二、A*算法的程序编写原理 A*算法是最好优先算法的一种。只是有一些约束条件而已。我们先来看看最好优先算法是如何编写的吧。 如图有如下的状态空间&#xff1a;…

IOS中NSUserDefaults的用法

2019独角兽企业重金招聘Python工程师标准>>> IOS中NSUserDefaults的用法&#xff08;轻量级本地数据存储&#xff09; 分类&#xff1a; IOS开发 Object&#xff0d;C编程语言2012-09-09 10:58 65223人阅读 评论(13) 收藏 举报 存储iosfloatinterfaceintegerdate NS…

如何做好产品经理一:你们是傻的吗?

如果你想做一个坏的产品经理, 就把那些和你意见不同的人都当作傻子。是的&#xff0c;你重复了好几遍你的看法&#xff0c;但他们就是不懂&#xff0c;估计他们永远都不会懂。这些人在想什么&#xff0c;都是傻的吗&#xff1f;既然你无法让这些傻子理解你说的话&#xff0c;干…

【Oracle 学习笔记】Day 1 常用函数整理(转换、DeCode),表的外键

select Convert(varchar,Convert(money,TaxExValue),1) from A--Result 2,794.87 58,119.66 1,367.52 对于SQL Server来说&#xff0c;进行金额的转换&#xff0c;可以按照上面的操作那样&#xff0c;会自动将金额处理为两位小数&#xff0c;并用逗号分隔小数点前面的数字。 当…

LOJ bitset+分块 大内存毒瘤题

题面 $ solution: $ 真的没有想到可以用分块。 但是可以发现一个性质&#xff0c;每个询问只关心这个点最后一次赋值操作&#xff0c;和这个赋值操作后的所有取 $ min $ 操作。这个感觉很有用&#xff0c;但是真的很难让人想到低于 $ n\times m $ 的做法。基于 $ DAG $ 的数据结…

Web开发编程实用手册

不要被这个名字吓到。这本手册&#xff0c;真的很实用。你能猜猜它有多少页么&#xff1f;只有62页&#xff0c;比起那些砖头书来&#xff0c;这本可以说是苗条得不能再苗条了。现在卓越搞活动&#xff0c;购买电子工业出版社图书&#xff0c;凡购买专题内图书满69元&#xff0…

版本管理工具:git svn 的比较

git&#xff1a;分布式。开发者可以提交到本地&#xff0c;每个开发者机器上都是一个完整的数据库。两个开发者之间&#xff0c;可以通过打patch的方式交换文件。svn&#xff1a;集中式。所谓 git 服务器&#xff0c;是指大家约定使用同一个网址提交、更新代码。这个网址可以是…

C# 配置文件 自定義結點

1. 對於配置自定義結點&#xff0c;需要繼承ConfigurationSection類。 UrlsSection : ConfigurationSection 2. 配置文件中&#xff0c;需要如下引用&#xff1a; View Code <configSections><section name"orders" type"WebApplication4.UrlsS…

uni-app 手指左右滑动实现翻页效果

首先给页面添加 touch 事件 <view class"text-area" touchstart"start" touchend"end"></view> 然后定义一个合理区间进行判断,用户当前是上下滑动看书还是左右滑动变换章节. start(e){this.startData.clientXe.changedTouches[0].c…