`
luyuwww
  • 浏览: 96494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mavne 构建jar

阅读更多

spring-boot 构建的应用用传统的方式打包会报

   java.lang.NoClassDefFoundError: org/springframework/boot/CommandLineRunner

错误,应该加入spring-boot-maven-plugin .

如下:

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-jar-plugin</artifactId>

                <configuration>

                    <archive>

                        <manifest>

                            <mainClass>com.ams.Application</mainClass>

                            <addClasspath>true</addClasspath>

                            <classpathPrefix>lib/</classpathPrefix>

                        </manifest>

                    </archive>

                    <classesDirectory>

                    </classesDirectory>

                </configuration>

            </plugin>

        </plugins>

    </build>

在pom里面添加后 直接 mvn clean package 就搞定.

 

java -jar u.jar

 

 

如果不是spring-boot 这个也可以用

一、依赖项的处理

 

java application运行时需要查找依赖的第三方jar,如果查找classpath失败,就会报错,可以先用

 

mvn dependency:copy-dependencies -DoutputDirectory=target/lib

 

命令,把依赖的jar包全部导出到target/lib这个目录下

 

 

 

二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件

 

java application的最终jar里,用解压工具打开后,可以看到META-INF目录下,有一个重要的清单文件 MANIFEST.MF,这里面可以指定 Main-Class及classpath,结构如下:

 

复制代码

1 Manifest-Version: 1.0

2 Built-By: jimmy

3 Build-Jdk: 1.7.0_09

4 Class-Path: lib/DataEntity-1.0.jar ...

5 Created-By: Apache Maven 3.2.3

6 Main-Class: ctas.importer.reader.app.Program

7 Archiver-Version: Plexus Archiver

复制代码

其中第4行指定了classpath,也就是所依赖的jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件

 

按 Ctrl+C 复制代码

 

按 Ctrl+C 复制代码

第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项

 

ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar  xxx.jar就可以了

0
2
分享到:
评论

相关推荐

    maven的三种工程pom、jar、war的区别

    Maven 项目中的三种工程:pom、jar、war 的区别 Maven 是一个流行的项目管理和构建工具,它可以帮助开发者更好地管理项目的依赖关系和构建过程。在 Maven 中,存在三种类型的工程:pom、jar 和 war,这三种工程类型...

    Java连接mongoDB需要的jar包(3.9.1)

    在传统的Maven或Gradle构建系统中,可以通过在pom.xml或build.gradle文件中声明对应的依赖来实现。对于3.9.1版本的MongoDB Java驱动,相应的Maven依赖可能如下所示: ```xml &lt;groupId&gt;org.mongodb ...

    MultipartEntityBuilder使用jar包

    下面将详细介绍`MultipartEntityBuilder`的使用及相关jar包。 `MultipartEntityBuilder`是Apache HttpClient库中的一个类,位于`org.apache.http.entity.mime`包下。它的主要作用是构建符合HTTP规范的多部分实体,...

    bcprov-ext-jdk15on-1.52.jar和bcprov-jdk15on-1.52.jar

    为了使用它们,开发者需要在代码中引入相应的依赖,或者在构建工具(如Maven或Gradle)的配置文件中声明这两个库为项目的依赖。 总结来说,"bcprov-ext-jdk15on-1.52.jar"和"bcprov-jdk15on-1.52.jar"是Bouncy ...

    Mavne3.3.9

    开发者通过编写POM.xml文件,可以清晰地定义项目结构、依赖关系以及构建过程,使得项目的构建和维护变得更加标准化和自动化。 Maven的依赖管理是其强大功能之一。它能自动处理项目依赖关系,下载所需的库文件,并...

    eclipse 3.4 mavne plugin

    2. **依赖管理**:通过插件,开发者可以轻松管理项目依赖,自动下载所需的库文件,避免手动管理jar文件。插件会根据POM.xml文件中的配置自动解析和解决依赖关系。 3. **构建与清理**:用户可以直接在Eclipse中执行...

    bcprov-ext-jdk15on-1.54.jar,bcprov-jdk15on-1.54.jar

    导入方式通常是在项目的类路径中添加这两个jar包,或者在Maven或Gradle构建文件中声明依赖。对于Maven,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.bouncycastle &lt;artifactId&gt;bcprov-jdk15on ...

    mavne的一个实例,参考一下

    然后,我们可以导航到项目根目录,执行`mvn compile`来编译源代码,`mvn test`来运行单元测试,以及`mvn package`来打包项目(通常生成JAR或WAR文件)。如果项目配置正确,这些命令应该能顺利完成而不会报错。 总的...

    mavne-plugin for myeclipse6.5

    【mavne-plugin for myeclipse6.5】是一个针对MyEclipse 6.5集成开发环境的Maven插件,旨在帮助用户在MyEclipse环境中更方便地管理和构建Maven项目。Maven是一个强大的项目管理和构建工具,它通过一个项目对象模型...

    maven工具包,mavne

    4. **构建项目**:在生命周期的各个阶段,Maven会调用相应的插件执行任务,如编译源代码、运行测试、打包成JAR/WAR等。 5. **部署**:最后,Maven可以将构建结果部署到远程仓库,供其他项目使用。 ### Maven的常用...

    maven打包成第三方jar包且把pom依赖包打入进来的方法

    在Java开发中,Maven是一个常用的项目管理工具,它负责项目的构建、依赖管理等任务。当开发的项目需要打包成JAR文件并分发给其他项目使用时,通常需要将项目依赖的其他JAR包一同打包进去,这就涉及到如何将POM文件中...

    Maven构建Spring3mvc和Hibernate

    1. Maven仓库:Maven通过中央仓库下载项目所需的依赖,包括JAR包、源码、文档等。 2. `pom.xml`:项目对象模型(Project Object Model),是Maven的核心,包含了项目信息、构建配置和依赖管理等。 **二、Spring3 ...

    Maven本地jar引用的实现方法

    在Java开发中,Maven作为项目管理和构建工具,极大地简化了构建、依赖管理和项目的可移植性。然而,有时候我们可能需要引用本地的JAR文件,而不是从Maven中央仓库或其他远程仓库获取。这种情况通常出现在一些特定的...

    SpringBoot+maven构建Web项目(Maven父子工程)

    在Maven的构建过程中,我们可以通过`mvn package`命令打包项目,生成可执行的JAR或WAR文件。SpringBoot支持创建可执行JAR,可以直接运行`java -jar target/my-app.jar`启动应用。若需要部署到外部服务器,可以选择...

    maven打包源码

    一旦配置完成,你可以通过运行`mvn source:jar`命令单独生成源代码包,或者在执行如`mvn clean install`之类的构建命令时自动生成。 ### 附加知识点 - **Maven生命周期**:Maven的构建过程遵循一个预定的生命周期...

    maven的myeclipse插件

    4. **复制jar包**:虽然现在通常不需要手动复制jar包到项目中,但在旧版本的集成过程中,可能需要将特定的Maven库JAR文件复制到MyEclipse的相应目录,以便IDE能够识别和使用。但这种做法现在已经很少见,大多数情况...

    Maven3.5.4本地安装包

    开发者可以使用插件扩展Maven的功能,例如,`maven-jar-plugin`用于打包JAR文件,`maven-war-plugin`用于打包WAR文件,`maven-compiler-plugin`负责编译源代码。 - **聚合与继承**:Maven支持项目聚合和继承,通过`...

    apache-maven-3.2.5

    在“apache-maven-3.2.5”这个特定版本中,可能包含了以下内容:Maven的可执行JAR文件、配置文件、文档、示例项目等。用户可以通过解压此压缩包,设置环境变量,然后在命令行中使用Maven进行项目构建和管理。对于...

    apache-maven-3.8.4.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 3.8.4是该软件的最新版本,它提供了许多改进和优化,旨在简化开发人员的工作流程并提高构建效率。在这个版本中,我们可以期待一些...

    apache-maven-3.6.3安装包

    Maven使用插件执行特定任务,如编译Java源代码、运行测试、创建JAR包等。插件通过`&lt;build&gt;&lt;plugins&gt;`部分定义在POM中。 **Maven的安装步骤** 1. **下载**:访问Apache Maven官方网站下载最新版本的Maven,例如本...

Global site tag (gtag.js) - Google Analytics