参考地址:
[maven3 常用命令、java 项目搭建、web 项目搭建详细图解]
[Maven 生成可以直接运行的 jar 包的多种方式]
一、创建 maven 项目
创建 java 项目:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
命令说明
mvn archetype:generate 固定格式
-DgroupId 组织标识(包名)
-DartifactId 项目名称
-DarchetypeArtifactId 指定 ArchetypeId,maven-archetype-quickstart,创建一个 Java Project;maven-archetype-webapp,创建一个 Web Project
-DinteractiveMode 是否使用交互模式
标准的 Maven 项目结构
src/main/java 存放项目的源代码
src/test/java 存放测试源代码
如果要存放一些配置文件,可以再建立一个目录 src/main/resource 存放,如存放 log4j.properties 等
二、maven 生成可执行 jar 包(多种方式)
Maven 可以使用 mvn package 指令对项目进行打包,如果使用 java -jar xxx.jar 执行运行 jar 文件,会出现"no main manifest attribute, in xxx.jar"(没有设置 Main-Class)、ClassNotFoundException(找不到依赖包)等错误。
要想 jar 包能直接通过 java -jar xxx.jar 运行,需要满足:
1、在 jar 包中的 META-INF/MANIFEST.MF 中指定 Main-Class,这样才能确定程序的入口在哪里;
2、要能加载到依赖包。
使用 Maven 有以下几种方法可以生成能直接运行的 jar 包,可以根据需要选择一种合适的方法。
方式一、使用 maven-assembly-plugin 插件打包(本人测试打包成功)
maven 项目创建成功后生成的 pom.xml 原文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hello</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>test</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
添加 springframework 框架(第二个 dependency,根据需求自由配置)和打包插件(build 标签内容)后的 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hello</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>test</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>hello.Application</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>
添加成功后,cmd 中进入 maven 项目目录,执行命令
mvn package assembly:single
之后会自动将项目依赖打入 jar 包,
执行 jar 包:cmd 进入项目目录下的 target 目录,执行命令:java -jar XXX.jar
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于