运维,自动化集成部署发布

maven项目打包时如何将依赖的jar包一起打包?

2018-11-22  本文已影响0人  姜小姜小

最近想把maven项目打包到Linux的Tomcat下运行,发现只是单纯的package成war包并不行,必须连带着依赖的jar一起打包,网上找了很多打包的方法,不知道是不是开发工具或者是maven版本的问题,很多都不行,所以总结一下遇到的问题和解决方案,当然主要也是参考了其他人的解决方法,我的开发环境是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,结束后 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配置的默认环境是JRE不是JDK

解决方案:配置eclipse的默认开发环境为JDK

这里发现还有一个问题就是,有时候即使已经将默认环境配置为jdk了,还是会出现这个错误,这时候需要对项目单独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文件的节点中,加上maven-war-plugin插件配置(注,plugin标签需要配置在build 下的plugins标签内)

<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执行成功后,控制台显示

上一篇 下一篇

猜你喜欢

热点阅读