精华内容
下载资源
问答
  • springboot maven打包之打入本地jar包部署linux服务器运行无报错 1、首先在项目中新建存放jar包的Directory,命名为lib(随意命名)。 2、在pom中自定义依赖。 <dependency> <groupId>EDU.oswego....

    springboot maven打包之打入本地jar包并部署linux服务器运行无报错
    1、首先在项目中新建存放jar包的Directory,命名为lib(随意命名)。
    jar包在编译成功之前,jar包最前面是不会有>这个符号的,开发应该都懂。仅在此提醒下。
    2、在pom中自定义依赖。

    		<dependency>
                <groupId>EDU.oswego.cs.dl.util.concurrent</groupId>
                <artifactId>concurrent</artifactId>
                <version>1.3.4</version> <!--自定义-->
                <scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
                <systemPath>${project.basedir}/src/main/resources/webapp/lib/concurrent-1.3.4.jar</systemPath>
            </dependency>
    

    在这里插入图片描述
    图片“1”框中,名字自定义可随意写,建议根据jar包的路劲写。
    图片“2”框中,名字自定义可随意写,建议根据jar包名称写。
    图片“3”框中,版本号可随意写,建议根据jar包的版本写。
    scope属性值必须填写为system。
    systemPath属性值必须是要引入的lib包的路径,比如${project.basedir}/src/main/resources/webapp/lib/concurrent-1.3.4.jar。

    3、最关键的一步,也是不同项目中差异性最多的一步。
    (1)

              在<groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
              所在的plugin标签中添加
    			<includeSystemScope>true</includeSystemScope>
    		  标签。
    

    如图:
    在这里插入图片描述
    在build标签中的plugin标签中的configuration标签中加入,代表build时编译指定的系统文件。

    <includeSystemScope>true</includeSystemScope>
    

    (2)、因为pom中有两个plugin标签。本人测试下,在org.apache.maven.plugins此plugn标签加入< includeSystemScope> true </ includeSystemScope>,会报错!(文章最后说一下,另外一个项目同样是引入本地jar包,但是单个plugin的pom中是如何配置的,就不另开帖子了,方便比较。

              在<groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
              所在的plugin标签中添加
    			<includeSystemScope>true</includeSystemScope>
    		  标签。
    

    在这里插入图片描述
    extdirs中填写要引入的lib包的路径。
    点击clean 、rebuild project、install或者package。

    至此本次打包如何配置结束。

    3、另外一个项目同样是引入本地jar包的pom中如何配置。
    (1)bulid中只有单个plugin,并且不用在< dependencies>< /dependencies>中自定义jar包依赖,但是会在idea–>file–>Projuct Strccture中引入一下这些jar包,这种是idea工具帮你引入,上面是在pom中指定引入,个人觉得本质是一样的。然后就是 clean 、rebuild project、install或者package。
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • SpringBoot项目使用Maven打包: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>...

    SpringBoot项目使用Maven打包:

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>

    执行mvn clean package命令后,生成应用jar,用压缩文件查看,maven自动生成了MANIFEST.MF文件:

    Manifest-Version: 1.0
    Implementation-Title: github-demo
    Implementation-Version: 2.1-SNAPSHOT
    Start-Class: com.gitlab.example.demo.DemoApplication
    Spring-Boot-Classes: BOOT-INF/classes/
    Spring-Boot-Lib: BOOT-INF/lib/
    Build-Jdk-Spec: 1.8
    Spring-Boot-Version: 2.2.1.RELEASE
    Created-By: Maven Archiver 3.4.0
    Main-Class: org.springframework.boot.loader.JarLauncher

     依赖的jar也在应用jar 中,位于BOOT-INF/lib/目录下。使用java -jar 即可运行这个应用jar包。

           为了提高部署的效率,需要把应用jar包跟依赖jar包分开,当项目中没有新增依赖的jar包时,只需把应用单独打包出来就行,这样应用jar包的大小会小很多。

           这需要maven-jar-plugin插件,改变默认的打包方式;还需要maven-dependency-plugin,把依赖的jar包打包。pom文件主要部分如下:

        <build>
            <plugins>
                <!--设置应用 Main 参数启动依赖查找的地址指向外部 lib 文件夹-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <!-- 项目所依赖的jar位于同一级的lib目录下-->
                                <classpathPrefix>lib/</classpathPrefix>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <!--设置 SpringBoot 打包插件不包含任何 Jar 依赖包-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <includes>
                            <include>
                                <groupId>nothing</groupId>
                                <artifactId>nothing</artifactId>
                            </include>
                        </includes>
                    </configuration>
                </plugin>
                <!--设置将 lib 拷贝到应用 Jar 外面-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

              目的就是为了把依赖的jar包放到target/lib目录下,在MANIFEST.MF文件中自动添加Class-Path属性,指向所依赖的jar包:

    Manifest-Version: 1.0
    Implementation-Title: github-demo
    Implementation-Version: 2.4-SNAPSHOT
    Start-Class: com.gitlab.example.demo.DemoApplication
    Spring-Boot-Classes: BOOT-INF/classes/
    Class-Path: lib/spring-boot-starter-web-2.2.1.RELEASE.jar lib/spring-b
     oot-starter-2.2.1.RELEASE.jar lib/spring-boot-2.2.1.RELEASE.jar lib/s
     pring-boot-autoconfigure-2.2.1.RELEASE.jar lib/spring-boot-starter-lo
     gging-2.2.1.RELEASE.jar lib/logback-classic-1.2.3.jar lib/logback-cor
     e-1.2.3.jar lib/log4j-to-slf4j-2.12.1.jar lib/log4j-api-2.12.1.jar li
     b/jul-to-slf4j-1.7.29.jar lib/jakarta.annotation-api-1.3.5.jar lib/sn
     akeyaml-1.25.jar lib/spring-boot-starter-json-2.2.1.RELEASE.jar lib/j
     ackson-databind-2.10.0.jar lib/jackson-annotations-2.10.0.jar lib/jac
     kson-core-2.10.0.jar lib/jackson-datatype-jdk8-2.10.0.jar lib/jackson
     -datatype-jsr310-2.10.0.jar lib/jackson-module-parameter-names-2.10.0
     .jar lib/spring-boot-starter-tomcat-2.2.1.RELEASE.jar lib/tomcat-embe
     d-core-9.0.27.jar lib/tomcat-embed-el-9.0.27.jar lib/tomcat-embed-web
     socket-9.0.27.jar lib/spring-boot-starter-validation-2.2.1.RELEASE.ja
     r lib/jakarta.validation-api-2.0.1.jar lib/hibernate-validator-6.0.18
     .Final.jar lib/jboss-logging-3.4.1.Final.jar lib/classmate-1.5.1.jar 
     lib/spring-web-5.2.1.RELEASE.jar lib/spring-beans-5.2.1.RELEASE.jar l
     ib/spring-webmvc-5.2.1.RELEASE.jar lib/spring-aop-5.2.1.RELEASE.jar l
     ib/spring-context-5.2.1.RELEASE.jar lib/spring-expression-5.2.1.RELEA
     SE.jar lib/slf4j-api-1.7.29.jar lib/spring-core-5.2.1.RELEASE.jar lib
     /spring-jcl-5.2.1.RELEASE.jar
    Spring-Boot-Lib: BOOT-INF/lib/
    Build-Jdk-Spec: 1.8
    Spring-Boot-Version: 2.2.1.RELEASE
    Created-By: Maven Archiver 3.4.0
    Main-Class: org.springframework.boot.loader.JarLauncher
    
    

    这样,当打出来的应用jar包,跟依赖jar包的lib文件夹放在同一个目录下时,使用java -jar就可以运行应用jar包了。

    展开全文
  • 1、我们需要手工引入本地jar包 1.1选中工程-->单击鼠标右键(选择如下图所示) 1.2 然后添加需要引入的本地jar包 1.3 点击apply后,点击ok按钮,就会在下图所示位置找到引入的本地jar包。 2、在下图所示...

    EClipse:

    1、我们需要手工引入本地jar包

          1.1  选中工程-->单击鼠标右键(选择如下图所示)

          

          1.2 然后添加需要引入的本地jar包

        

       1.3 点击apply后,点击ok按钮,就会在下图所示位置找到引入的本地jar包。

       

      2、在下图所示位置创建lib文件夹

            

     3、 将步骤1中引入的jar包拷贝到该lib目录下。

    4、在工程的pom文件中,加上如下语句(需根据自己的jar包进行替换)

    <dependency>   
       <groupId>com.sap</groupId>  
       <artifactId>sapjco3</artifactId>  
       <version>3.0.12</version>  
       <scope>system</scope>  
       <systemPath>${project.basedir}/src/main/resources/lib/sapjco3.jar</systemPath>  
    </dependency>

      5、重新打包,就会发现本地jar包已经被打包到该工程的发行包中。

    在使用springboot-1.5.6.RELEASE  版本的时候,依靠以上方法并不能将jar包打进工程中,需要

    在pom文件中加上如下代码:

    <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
    		     <includeSystemScope>true</includeSystemScope>
    		</configuration>
          </plugin>
    </plugins>
    

    开发工具idea

    1: 将项目打包成 可执行的jar文件

        按照以前整合项目的套路,直接将第三种的jar添加项目lib中即可。我也是这么做的,在项目中新建lib文件夹,将第三放的jar copy进去。

    2:依然dependency标签引入第三种jar,写法如下

    scopre 写成system , systemPath : 指向jar所在的位置。 不要按照以前的套路,在libraries中添加进来了。

    3: 按照上述步骤,ide开发部署是没有问题的。但是打包mvn clean package,第三方的jar,还是未能打进去,运行项目就会提示缺少jar文件。

    4:在spring-boot-maven-plugin中configuration下的includeSystemScope属性指定为true即可了。

        goal-repackage属性为true,因为项目是多模块的,不然打包后文件不能将依赖文件打包进去。

    将项目打包成war包部署

    1:首先修改项目的pom文件,打包类型jar=》war

    2: 按照spring boot的官方文档,说只需要添加2中的依赖(scope是provided)。 其他网友也说要在web排除tomcat的依赖,并添加上tomcat-servlet-apide 依赖,以防万一加上吧,谁知道会出现什么事情呢。

    3:打war包的时候,有时候会提示说没web.xml文件,加上下面的话明确告诉 没web.xml

    4: 重点来了  设置maven-war-plugins插件,否则外部依赖无法打进war包

    展开全文
  • maven打包加入本地jar

    2020-05-22 13:56:59
    maven项目在开发的时候,有时候,并不是所有的依赖都可以在远程仓库能够获取到,只能是在一些网站下载没有推到公共仓库的jar文件,然后加入到工程的buildpath中,在本地开发运行,不会有问题,但是最后打包部署的...

        maven项目在开发的时候,有时候,并不是所有的依赖都可以在远程仓库能够获取到,只能是在一些网站下载没有推到公共仓库的jar文件,然后加入到工程的buildpath中,在本地开发运行,不会有问题,但是最后打包部署的时候,会因为缺少这些没有在pom.xml文件中指定的依赖jar而报错。

        因此,我们需要将本地jar也加入到pom.xml的依赖配置项中,而本地jar最好是放在项目路径下,比如lib目录,如下所示:

        

        因为我们的项目有时候并不是在本地进行打包构建,而是把代码提交到gitlab,在gitlab服务器上进行自动构建,如果放在项目路径之外,而gitlab服务器上又没有的时候,还是会报错。

        以上这一步做好了,其实配置就很简单了,只需要在pom.xml配置文件中增加一个dependency的配置即可,groupId,artifactId,version均随意指定,因为最终起决定作用的是scope属性以及systemPath属性,如下所示:

         

        本人亲测,只需要这么配置,我们进行mvn package的时候,就不会报错,而且打出的jar包直接运行也不会报错。 

        真的是打脸啊,本地运行没有报错,是有个警告,构建成功,放到gitlab,自动构建,最后运行,出现了以下警告:

       [WARNING] Some problems were encountered while building the effective model for com.huali.mec:mec-tcp-receiver:jar:1.0.0
       [WARNING] 'dependencies.dependency.systemPath' for asnrt:javase:jar should not point at files within the project directory, ${project.basedir}/lib/asnrt.jar will be unresolvable by dependent projects @ line 99, column 17

        意思是不能使用项目目录中的jar,也有人遇到了这样的问题:https://www.phpsong.com/3536.html,根据他的提示,需要将${project.basedir}改为${pom.basedir} 。

        再次构建就会顺利通过。

    展开全文
  • Maven 打包时加入本地依赖包

    千次阅读 2017-10-23 23:09:35
    Maven 打包时加入本地依赖包 问题描述Maven 工程部署到 Tomcat 后,启动报错,找不到相应的类文件:java.lang.NoClassDefFoundError: com/vmware/vim25/InvalidPropertyFaultMsg问题原因查看报错信息,发现找不到的...
  • 转载传送门:传送门 ...方案一 安装本地jar包本地仓库 1. 本地安装 在alipay-sdk-java-3.0.0.jar文件目录下执行命令,安装此 jar 包到本地 maven 仓库中 mvn install:install-file -Dfile=alipa
  • java项目通过maven依赖构建,一般依赖的jar文件都是通过maven配置后从本地仓库查找,如果没有则从中央仓库或...为了解决maven本地依赖jar文件没有打包部署包的问题,我们这里以spring boot的项目依赖oracle驱动的例
  • maven打包包含本地jar包

    万次阅读 2017-04-28 11:09:51
    在eclipse中可以在build path中添加jar包,但是单独编译maven工程时,就会报错。 解决方法:在pom文件中添加如下配置,可以在编译的时候引用到这些本地jar包 org.apache.maven.plugins maven-compiler-
  • 依赖包打包jar中 <!-- 打包依赖包jar中 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</...
  • maven打包时引入外部依赖jar

    千次阅读 2018-11-12 18:09:46
    maven打包时引入外部依赖jar 需求说明: A项目项目中依赖了b.jar,但是b.jar并非maven上的jar包,而是直接放在main/resouces/lib的文件夹下,现在A项目项目打包时,需要将b.jar放在A生成的jar包中,结构如下: 实现...
  • 第一 依赖本地jar: <dependency> <groupId>com.icinfo</groupId> <artifactId>alesapi</artifactId> <version>1.0-SNAPSHOT</version> <scope>system<...
  • Maven打包(瘦身打包部署),不包含第三方依赖jar包
  • 1.引入本地jar包 在项目路径下面新建lib文件夹,并把jar包文件放到这个目录下 如: 2.在pom文件定义依赖并指向刚才引入的文件 如: &lt;dependency&gt; &lt;groupId&gt;org.taobao.sdk...
  • 使用springCloud的过程中,发布到生产环境的网速受限,如果每次将60,70M甚至更大的jar包上传,速度太慢了,采取jar包和配置文件分离的方式可以极大的压缩jar包大小,至于依赖jar包则只需要上传一次,后期增加了jar...
  • 为了解决maven依赖jar文件没有打包部署包的问题,使用system systemPath 获取jar包在项目中的存放路径如下图配置: 使用${project.basedir}动态获取项目根目录。 配置完成后点击clean,然后点击install即可打包...
  • 有时候我们的项目依赖jar包比较多,项目会很大,那我们每次部署更新的时候上传都会很慢,起始我们只是想更新里面的代码而已,而那众多的依赖包并不想重新上传,这时候我们就需要将依赖包和项目代码分离开来了 ...
  • 缘由: 本地Eclipse测试无问题;...对比本地项目maven repository依赖于jar包中lib文件 缺少如上的jar包 方法1: pom.xml 手动添加需要的jar包 方法2: mvn dependency:tree -X 查看错误日志 –未完… ...
  • IntelliJ IDEA是一个非常好用的开发工具,做JAVA开发经常会引入jar包,但是这些jar包打包部署的时候怎么批量导出呢?文档中做了具体的介绍。
  • Maven 生成打包可执行jar包

    万次阅读 多人点赞 2018-09-28 14:49:23
    Maven打包插件介绍4. Maven使用maven-jar-plugin打可执行jar包5. Maven使用maven-assembly-plugin装需要打包的文件打进zip包6. Maven生成可执行jar包及zip项目压缩包7. 执行jar包8. pom.xml配置9. package.xml文件 ...
  • 方法一:使用maven-jar-plugin和maven-dependency-plugin 方法二:使用maven-assembly-plugin (推荐) 方法三:使用maven-shade-plugin 方法四:使用onejar-maven-plugin 方法五:使用spring-boot-maven-plugin ...
  • 1.先打包jar包,通过maven package,如果出现依赖问题,就请用maven install来安装 2.找到Target目录下的jar包,并点击jar包,然后鼠标再点击空白处,按住shift键右键,打开“Open command window here” 窗口 3....
  • springboot项目引用本地jar包 1、首先在resources目录下建立lib目录,引用所需的jar文件。如下图: 2、在pom文件中定义本地jar的引用 注意:引用本地jar文件标签值须指定system,${project.basedir}为系统指定...
  • 后缀名.jar.original和.jar的...通俗来讲就是,origin包只含有我们自己写的代码打成的jar包,不包含引入的maven依赖jar包 但是我们通常的util包要是依赖了其他依赖时,打包pom文件内就需要加上如下代码,可以解决依赖
  • 之前项目中碰到一个问题,使用Maven打包某项目只能在本机打成功,在别人的机子上或用服务器的jenkins都报某个依赖下不下来的问题,去Maven的私服上查找却又能找到,并且可以下载,但是通过maven命令(jenkins里打包...
  • idea maven本地依赖打进jar

    千次阅读 2019-06-03 23:24:20
    如上pom.xml里有这两个依赖,UserAgentParser本地有,但是服务器里没有,所以打包要打进去;但是服务器里有部署了hadoop,那么hadoop肯定有了。 解决: <groupId>org.apache.maven.plugins <artifactId>...
  • 在使用maven进行依赖管理的项目中,想要导入第三方的jar包,除了将jar包上传到maven库中,还可以使用 <scope>system</scope>加上jar包的路径进行导入 但这种方法导入的jar包,在打包时不会被包含...
  • 运行报错:java.lang.NoClassDefFoundError: Jama/Matrix,其中Jama是项目的一个依赖包,用来做矩阵计算。 使用 mvn -f pom.xml dependency:copy-dependencies 下载依赖包Jama到./target/depen
  • 最近尝试引入淘宝授权以及阿里云物联网网关,sdk-core-java、taobao-sdk-java是maven就有的,但是测试环境下taobao-sdk-java这个jar包却不是放在maven的,所以得引入本地的下载回来的jar包本地开发直接引入,idea...
  • maven项目部署后没有依赖jar包

    千次阅读 2017-05-31 16:56:36
    1、部署后,WEB-INF/lib 里如果没有maven依赖jar ,请检查工程部署配置: 2、如果没有看到 maven 依赖配置,打开 pom.xml 检查打包类型是否是war:
  • 文章目录问题解决 问题 在进行docker部署的时候,开始对项目进行打包,在...于是查看jar包内容,发现 MATE_INFO/MANIFEST.MF 文件的内容为 Manifest-Version: 1.0 Built-By: Administrator Created-By: Apache Maven...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,823
精华内容 13,929
关键字:

maven打包部署依赖本地jar包