maven 指令之package 和install的区别

maven package 和 install 区别

原创 2016年08月18日 14:55:26

1.install:打包好的 jar 包会安装到本地的 maven 仓库中,使用的配置是默认的配置,供其他项目使用
2.package 指定参数打包:clean package -Dmaven.test.skip=true -Pprod 这种方式就是指定了打包的参数,并且打包后的文件存放到项目的 target 目录下。


之前一直不明白package与  install的区别,今天测试了下。

 如果b项目依赖a项目,而a打了包(package),jar仅仅时打到了a项目的target下。这时编译b项目,还是会报错,找不到所依赖的a项目,说明b项目在本地仓库是没有找到它所依赖的a项目。然后,我install a项目这时,有以下日志,[INFO] Installing G:\projects\a\target\a-0.0.1-SNAPSHOT.jar to F:\repository\com\chenjun\a\0.0.1-SNAPSHOT\a-0.0.1-SNAPSHOT.jar
[INFO] Installing G:\projects\a\pom.xml to F:\repository\com\chenjun\a\0.0.1-SNAPSHOT\a-0.0.1-SNAPSHOT.pom,说明a项目已安装到本地仓库了,并且是jar和pom同时安装的.

这时候再去compile(编译)b项目,b编译通过.这是因为a项目的jar包打包后通过install指令安装到了本地maven库下了,b项目再次编译后就可以在本地maven库上找到且引用到他需要依赖的a项目jar包了(因为刚才a项目已经通过install指令安装到maven本地库内了)


总之,package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用.


Maven 是一个流行的 Java 构建工具,它通过命令行管理项目的构建、依赖部署流程。当你想在一个 Maven 项目中引用其他 jar 包(Java Archive 文件)时,你可以使用特定的指令来添加依赖。 Maven 依赖管理主要通过 pom.xml 文件进行,这是 Maven 项目的配置文件,其中包含了项目及其依赖的信息。要添加外部库为依赖,你需要执行以下几个步骤: 1. **添加坐标**:首先,在`<dependencies>`标签内,为 jar 包定义一个 `dependency` 元素。这个元素包含两个重要属性: - `groupId`: 库的所有者(通常是组织名或个人 GitHub 用户名) - `artifactId`: 库的名字 - 可选地,还有 `version` 属性指定库的具体版本 ```xml <dependency> <groupId>com.example</groupId> <artifactId>library-name</artifactId> <version>1.0.0</version> </dependency> ``` 2. **引入本地仓库**:如果你已经有了 jar 包,可以通过 `<repository>` 标签将其放置到本地 Maven 仓库 (`~/.m2/repository/`) 中,这样 Maven 就能找到它们。 3. **使用 `mvn` 命令安装**: 如果你想从远程仓库下载并安装依赖,可以使用 `mvn install:install-file` 命令,提供本地路径坐标信息。 4. **编译打包**: 当你完成依赖设置后,可以使用 `mvn clean compile` 来编译项目,`mvn package` 来创建包含所有依赖的 JAR 文件。 例如,如果你想添加 Google Guava 库的依赖,可以在 pom.xml 如下添加: ```xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1-jre</version> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值