java manifest utf8_maven使用详解 项目编码 指定jdk版本 scope含义 配置manifest 拷贝依赖jar包...

本文详细介绍了如何在Java Maven项目中配置Manifest文件,包括设置项目编码为UTF-8,指定JDK版本,理解dependency的scope含义,配置manifest,拷贝依赖jar包等关键步骤。同时讲解了maven变量的使用和打包发布策略。
摘要由CSDN通过智能技术生成

一、基本配置

name、description、url是工程描述性信息,非必要的,pom示例:pomdemo.xml

二、设置项目编码(windows默认GBK)

UTF-8

UTF-8

三、指定jdk版本

修改plugin配置:

org.apache.maven.plugins

maven-compiler-plugin

3.6.2

1.7

1.7

或修改settings文件:

jdk-1.8

true

1.8

1.8

1.8

1.8

或修改pom文件:

1.8

1.8

maven-compiler-plugin配置:fork和executable用于使用外部编译器,默认使用内置编译器,skip禁止编译测试代码;

eclipse中update project影响:会设置JRE System Library到对应版本的Excution environment;

优先级:plugin配置(推荐) > settings配置 > pom配置;

四、dependency的scope字段含义

compile,缺省值,用于所有阶段,随着项目一起发布,并且依赖传递。

provided,类似compile,但运行时由jdk或者容器提供依赖,如servlet.jar,依赖不传递。

runtime,用于运行和测试阶段,如JDBC驱动,并且依赖传递。

test,只用于编译和运行测试代码,不随项目发布,且依赖不传递。

system,类似provided,需要显式提供依赖的文件,maven不会在仓库中查找它。

optional=true,表示依赖不随项目发布,且依赖不传递。

五、maven依赖本地库

scope值必须为system,然后要引入systemPath字段。

com.sun.jmdk

jmxtools

1.2.1

system

${project.basedir}/lib/jmxtools.jar

六、打jar包排除文件

org.apache.maven.plugins

maven-jar-plugin

3.1.0

*properties*

注意:mvn sprint-boot:run运行应用并没有用jar包,所以spring-boot:run和eclipse直接run效果一样。

七、配置manifest

addClasspath:是否增加依赖jar包到classpath;

classpathPrefix:增加依赖的通用前缀;

mainClass:设置主类;

manifestEntries:增加特殊key-value,本例修改classpath,增加的classpath放在依赖jar包后面;

org.apache.maven.plugins

maven-jar-plugin

3.1.0

true

../lib

mina.MinaDemo

.

八、拷贝所有依赖jar包

phase,哪个阶段执行拷贝动作;

outputDirectory,拷贝到哪个目录;

org.apache.maven.plugins

maven-dependency-plugin

2.10

copy

prepare-package

copy-dependencies

system

lib

九、发布打包

org.apache.maven.plugins

maven-assembly-plugin

logdemo.LogDemo

jar-with-dependencies

make-assembly

package

single

十、maven变量

内置变量:

project.basedir,工程目录;

maven.build.timestamp,项目开始构建时间;

project.element,project下面元素element的值,如project.name;

定义属性,优先级是-D定义属性 > pom中profile定义属性 > pom定义属性:

feinenxiang

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值