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就可以了
相关推荐
Maven 项目中的三种工程:pom、jar、war 的区别 Maven 是一个流行的项目管理和构建工具,它可以帮助开发者更好地管理项目的依赖关系和构建过程。在 Maven 中,存在三种类型的工程:pom、jar 和 war,这三种工程类型...
在传统的Maven或Gradle构建系统中,可以通过在pom.xml或build.gradle文件中声明对应的依赖来实现。对于3.9.1版本的MongoDB Java驱动,相应的Maven依赖可能如下所示: ```xml <groupId>org.mongodb ...
下面将详细介绍`MultipartEntityBuilder`的使用及相关jar包。 `MultipartEntityBuilder`是Apache HttpClient库中的一个类,位于`org.apache.http.entity.mime`包下。它的主要作用是构建符合HTTP规范的多部分实体,...
为了使用它们,开发者需要在代码中引入相应的依赖,或者在构建工具(如Maven或Gradle)的配置文件中声明这两个库为项目的依赖。 总结来说,"bcprov-ext-jdk15on-1.52.jar"和"bcprov-jdk15on-1.52.jar"是Bouncy ...
开发者通过编写POM.xml文件,可以清晰地定义项目结构、依赖关系以及构建过程,使得项目的构建和维护变得更加标准化和自动化。 Maven的依赖管理是其强大功能之一。它能自动处理项目依赖关系,下载所需的库文件,并...
2. **依赖管理**:通过插件,开发者可以轻松管理项目依赖,自动下载所需的库文件,避免手动管理jar文件。插件会根据POM.xml文件中的配置自动解析和解决依赖关系。 3. **构建与清理**:用户可以直接在Eclipse中执行...
导入方式通常是在项目的类路径中添加这两个jar包,或者在Maven或Gradle构建文件中声明依赖。对于Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.bouncycastle <artifactId>bcprov-jdk15on ...
然后,我们可以导航到项目根目录,执行`mvn compile`来编译源代码,`mvn test`来运行单元测试,以及`mvn package`来打包项目(通常生成JAR或WAR文件)。如果项目配置正确,这些命令应该能顺利完成而不会报错。 总的...
【mavne-plugin for myeclipse6.5】是一个针对MyEclipse 6.5集成开发环境的Maven插件,旨在帮助用户在MyEclipse环境中更方便地管理和构建Maven项目。Maven是一个强大的项目管理和构建工具,它通过一个项目对象模型...
4. **构建项目**:在生命周期的各个阶段,Maven会调用相应的插件执行任务,如编译源代码、运行测试、打包成JAR/WAR等。 5. **部署**:最后,Maven可以将构建结果部署到远程仓库,供其他项目使用。 ### Maven的常用...
在Java开发中,Maven是一个常用的项目管理工具,它负责项目的构建、依赖管理等任务。当开发的项目需要打包成JAR文件并分发给其他项目使用时,通常需要将项目依赖的其他JAR包一同打包进去,这就涉及到如何将POM文件中...
1. Maven仓库:Maven通过中央仓库下载项目所需的依赖,包括JAR包、源码、文档等。 2. `pom.xml`:项目对象模型(Project Object Model),是Maven的核心,包含了项目信息、构建配置和依赖管理等。 **二、Spring3 ...
在Java开发中,Maven作为项目管理和构建工具,极大地简化了构建、依赖管理和项目的可移植性。然而,有时候我们可能需要引用本地的JAR文件,而不是从Maven中央仓库或其他远程仓库获取。这种情况通常出现在一些特定的...
在Maven的构建过程中,我们可以通过`mvn package`命令打包项目,生成可执行的JAR或WAR文件。SpringBoot支持创建可执行JAR,可以直接运行`java -jar target/my-app.jar`启动应用。若需要部署到外部服务器,可以选择...
一旦配置完成,你可以通过运行`mvn source:jar`命令单独生成源代码包,或者在执行如`mvn clean install`之类的构建命令时自动生成。 ### 附加知识点 - **Maven生命周期**:Maven的构建过程遵循一个预定的生命周期...
4. **复制jar包**:虽然现在通常不需要手动复制jar包到项目中,但在旧版本的集成过程中,可能需要将特定的Maven库JAR文件复制到MyEclipse的相应目录,以便IDE能够识别和使用。但这种做法现在已经很少见,大多数情况...
在“apache-maven-3.2.5”这个特定版本中,可能包含了以下内容:Maven的可执行JAR文件、配置文件、文档、示例项目等。用户可以通过解压此压缩包,设置环境变量,然后在命令行中使用Maven进行项目构建和管理。对于...
开发者可以使用插件扩展Maven的功能,例如,`maven-jar-plugin`用于打包JAR文件,`maven-war-plugin`用于打包WAR文件,`maven-compiler-plugin`负责编译源代码。 - **聚合与继承**:Maven支持项目聚合和继承,通过`...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 3.8.4是该软件的最新版本,它提供了许多改进和优化,旨在简化开发人员的工作流程并提高构建效率。在这个版本中,我们可以期待一些...
Maven使用插件执行特定任务,如编译Java源代码、运行测试、创建JAR包等。插件通过`<build><plugins>`部分定义在POM中。 **Maven的安装步骤** 1. **下载**:访问Apache Maven官方网站下载最新版本的Maven,例如本...