使用maven打包,pom.xml文件中的build配置(与第三方依赖jar包分离)

本文介绍了如何使用Maven进行项目打包,重点关注pom.xml中build配置,解析了如${basedir}、${project.build.directory}等内置变量,并详细说明了build标签内的关键参数设置。此外,讨论了在Eclipse环境下,执行maven clean后再执行maven install导致jar包缺少class文件的问题,提供了解决方案,即在<build>标签下添加<sourceDirectory>src/</sourceDirectory>来指定源文件位置。
摘要由CSDN通过智能技术生成

一、先了解下几个maven的内置变量

  1. ${basedir} 项目根目录
  2. ${project.build.directory} 构建目录,缺省为target
  3. ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
  4. ${project.build.finalName} 产出物名称,缺省为 ${project.artifactId}- ${project.version} (注意最后一个 $ 前边有一个空格,复制后去掉即可)
  5. ${project.packaging} 打包类型,缺省为jar
  6. ${project.xxx} 当前pom文件的任意节点的内容

二、pom.xml文件中的build标签内参数配置,本人项目能正常打包,如果复制后,修改文件路径以及文件名称信息即可,以下对几个比较重要且容易出错的标签参数增加了备注。

<build>
    <sourceDirectory>src/</sourceDirectory> <!-- src指的是你java源文件存储的位置-->
	<!-- 重新定义打成jar包的名字 -->
	<finalName>PluginTest</finalName>
	<plugins>
		<!-- 插件:将项目打成jar包 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>
			<configuration>
				<!-- 过滤掉不希望包含在jar中的文件(这里的目录结构是根据编译后,从生成的 target/classes/开始算的), 
				也可以这样<exclude>**/*.yml</exclude> 指classes下所有的yml文件, 
				                  <exclude>**/conf/**</exclude> 指classes下有个conf下的所有文件 -->
				<excludes>
					<exclude>com/PluginTest/123.yml</exclude>
					<exclude>**/*.yml</exclude>
					<exclude>**/conf/**</exclude>
				</excludes>
				<!-- 这里添加后并没有达到我想要的效果,以后搞清楚后会补充上 -->
				<!-- <includes> <include>**/*.yml</include> </includes> -->
				<archive>
					<manifest>
						<!-- 是否添加依赖的jar包的路径配置 (决定MANIFEST.MF中的Class-Path是否有
Maven 是一个基于项目对象模型(POM)的项目管理工具,可以通过配置 POM 文件来管理项目的构建、依赖、测试等等。 在 POM 文件,可以通过配置 `<packaging>` 元素来指定项目打包的方式。常见的打包方式有 jar、war、ear 等。 例如,以下是一个打包方式为 jar 的 POM 配置: ```xml <project> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>my-project</artifactId> <version>1.0.0</version> <packaging>jar</packaging> ... </project> ``` 在执行 Maven 打包命令时,Maven 会根据 POM 文件配置来生成相应的打包文件。例如,执行以下命令可以生成一个名为 `my-project-1.0.0.jar` 的 jar 包: ``` mvn package ``` 同时,你也可以通过配置 `<build>` 元素来指定打包过程的一些自定义操作,比如编译、测试、打包等等。例如: ```xml <project> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>my-project</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ... </project> ``` 以上配置使用Maven Compiler Plugin 插件,指定了编译时使用Java 版本为 1.8。 希望这些信息能够对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值