美文网首页运维,自动化集成部署发布
maven项目打包时如何将依赖的jar包一起打包?

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

作者: 姜小姜小 | 来源:发表于2018-11-22 09:26 被阅读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执行成功后,控制台显示

    相关文章

      网友评论

        本文标题:maven项目打包时如何将依赖的jar包一起打包?

        本文链接:https://www.haomeiwen.com/subject/epukqqtx.html