最近想把maven項目打包到Linux的Tomcat下運(yùn)行法挨,發(fā)現(xiàn)只是單純的package成war包并不行,必須連帶著依賴的jar一起打包幅聘,網(wǎng)上找了很多打包的方法凡纳,不知道是不是開發(fā)工具或者是maven版本的問題,很多都不行帝蒿,所以總結(jié)一下遇到的問題和解決方案荐糜,當(dāng)然主要也是參考了其他人的解決方法,我的開發(fā)環(huán)境是eclipse + maven3.3.9 + tomcat7
首先葛超,pom.xml中添加如下配置:
?<build>
<plugins>
?????<plugin>
????? <groupId>org.springframework.boot</groupId>
????? <artifactId>spring-boot-maven-plugin</artifactId>
?????</plugin>
</plugins> ?
</build>
然后:右擊項目工程---------->properties--------->deploymentAssembly---->add---->java build path entries------->next--->Maven Dependencies--->Finish(這是阿里云的解決方案 https://www.aliyun.com/jiaocheng/304961.html暴氏,但是我是加上上面的配置一起才生效的)
打包:選中pom.xml文件,右鍵绣张,run as maven clean偏序,結(jié)束后 run as maven install
打包中遇到的兩個問題:
問題一、No compiler is provided in this environment. Perhaps you are running on a JRE rather than aJDK:
(參考博客:https://blog.csdn.net/ywb201314/article/details/51181385)
問題原因:eclipse配置的默認(rèn)環(huán)境是JRE不是JDK
解決方案:配置eclipse的默認(rèn)開發(fā)環(huán)境為JDK
這里發(fā)現(xiàn)還有一個問題就是胖替,有時候即使已經(jīng)將默認(rèn)環(huán)境配置為jdk了研儒,還是會出現(xiàn)這個錯誤,這時候需要對項目單獨(dú)build path独令,選中項目右鍵BuildPath
問題二端朵、Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.6:war
(參考博客:https://blog.csdn.net/stemq/article/details/52922790)
問題原因:打包時在Tomcat的WebContent/WEB-INF/文件夾下找不到web.xml文件。
解決方案:如果WebContent/WEB-INF/web.xml文件存在燃箭,需要在pom.xml文件的節(jié)點中,加上maven-war-plugin插件配置(注冲呢,plugin標(biāo)簽需要配置在build 下的plugins標(biāo)簽內(nèi))
<plugin>
????????<groupId>org.apache.maven.plugins</groupId>
????????<artifactId>maven-war-plugin</artifactId>
????????<version>3.0.0</version>
????????<configuration>
????????????<webResources>
????????????????<resource>
????????????????????<directory>WebContent</directory>
????????????????</resource>
????????????</webResources>
????????</configuration>
</plugin>
如果WebContent/WEB-INF/web.xml文件不存在,則按下面的方式配置招狸。
?<plugin>
????????<groupId>org.apache.maven.plugins</groupId>
????????<artifactId>maven-war-plugin</artifactId>
????????<version>3.0.0</version>
????????<configuration>
????????????<failOnMissingWebXml>false</failOnMissingWebXml>
????????</configuration>
????</plugin>? ??
最后打包的war包或者jar所在的位置:maven-install執(zhí)行成功后敬拓,控制臺顯示