MVN使用随笔

001 创建项目
mvn archetype:generate -DgroupId=com.company.push.monitor -DartifactId=push-monitor -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
002 [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
<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>com.company.push.monitor</groupId>
  <artifactId>push-monitor</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>push-monitor</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
003 安装第三方依赖

将第三方依赖安装到本地repository

mvn install:install-file -Dfile=/path/to/file -DgroupId=com.company.project -DartifactId=project-common -Dversion=1.0.0  -Dpackaging=jar -DgeneratePom=true

- 本地repository路径通过通过${M2_HOME}/conf/settings.xml中如下字段指定

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
参考: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

004 打包依赖包

在pom.xml加入如下内容:

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <resources>  
       <resource>  
          <!--basedir = the path where pom.xml is in-->
          <directory>${basedir}/resources</directory>  
       </resource>  
    </resources>
    
    <plugins>
      <!-- package dependencies suitable for deployment to a cluster. -->
      <plugin>
		 <artifactId>maven-assembly-plugin</artifactId>
		 <configuration>
		   <descriptorRefs>
			 <descriptorRef>jar-with-dependencies</descriptorRef>
		   </descriptorRefs>                   <archive>
                        <manifest>
                            <mainClass>net.xxxx.yyyy.service.arch.Application</mainClass>
                        </manifest>
                    </archive> 
		 </configuration>
		 <executions>
			<execution>
			  <id>make-assembly</id>
			  <phase>package</phase>
			  <goals>
			    <goal>single</goal>
			  </goals>
			</execution>
		  </executions>
      </plugin>
    </plugins>
       
  </build> 

打包结果:target/project-SNAPSHOT-jar-with-dependencies.jar

005 jar查看jar文件中资源列表

jar vtf /path/to/jar


<think>好的,我现在需要帮助用户理解如何使用`mvn install`命令。首先,用户之前询问了阿里云Maven仓库的地址,现在转向Maven命令的使用,说明他们可能在配置好仓库后开始实际构建项目。用户可能是刚接触Maven的开发者,需要基础指导。 首先,我应该解释`mvn install`的基本作用,即安装项目到本地仓库,这样其他项目可以依赖它。接下来需要分步骤说明使用方法,可能包括基本命令、常见参数,以及使用场景。同时,用户可能遇到的一些问题,比如跳过测试、指定模块,这些都需要覆盖到。 还要注意用户可能的实际需求,比如多模块项目中如何操作,如何避免重复构建,以及错误处理。需要确保语言清晰,结构合理,避免使用过于专业的术语,保持易懂。最后,补充示例和注意事项,帮助用户更好地理解和应用命令。需要检查信息准确性,确保与Maven官方文档一致,避免误导用户。</think>### `mvn install` 命令详解 `mvn install` 是 Apache Maven 的核心命令之一,主要用于将项目构建生成的构件(如 JAR、WAR 等)**安装到本地 Maven 仓库**,以便其他项目可以依赖此构件。以下是具体用法和常见场景: --- #### 1. **基本用法** 在项目根目录(含 `pom.xml` 的目录)下执行: ```bash mvn install ``` - **作用**: - 编译代码(触发 `compile` 阶段) - 运行单元测试(触发 `test` 阶段) - 打包构件(触发 `package` 阶段) - 将生成的构件(如 `.jar` 文件)和 `pom.xml` 安装到本地仓库(默认路径:`~/.m2/repository`) --- #### 2. **常用参数** | 参数 | 作用 | 示例 | |------|------|------| | `-DskipTests` | 跳过单元测试(编译测试代码但**不执行**测试) | `mvn install -DskipTests` | | `-Dmaven.test.skip=true` | 完全跳过测试(不编译也不执行测试代码) | `mvn install -Dmaven.test.skip=true` | | `-pl <模块名>` | 指定构建某个子模块(需配合 `-am` 参数) | `mvn install -pl module-a -am` | | `-T 4C` | 多线程构建(4 线程,适用于多模块项目) | `mvn install -T 4C` | --- #### 3. **典型使用场景** - **场景 1:本地开发依赖** 当你在开发多模块项目时,若模块 B 依赖模块 A,需先对模块 A 执行 `mvn install`,将其安装到本地仓库,模块 B 才能正确引用。 - **场景 2:调试本地版本** 如果你修改了某个依赖库的源码,可通过 `mvn install` 生成新版本到本地仓库,其他项目重启后即可加载新版本。 - **场景 3:离线环境使用** 在没有网络的环境下,本地仓库中已安装的依赖可直接被其他项目使用,无需从远程仓库下载。 --- #### 4. **执行过程解析** 执行 `mvn install` 会触发以下 Maven 生命周期阶段(按顺序): 1. `validate` → 验证项目配置 2. `compile` → 编译源代码 3. `test` → 运行单元测试 4. `package` → 打包构件(生成 JAR/WAR 等) 5. `install` → 安装到本地仓库 --- #### 5. **注意事项** - **本地仓库冲突**:若本地仓库已存在相同版本构件,Maven 会直接覆盖旧文件。 - **版本管理**:避免使用 `SNAPSHOT` 版本发布到生产环境(本地开发可使用)。 - **依赖范围**:通过 `<scope>` 标签控制依赖作用范围(如 `test` 表示仅测试阶段生效)。 --- #### 6. **示例** 假设项目结构如下: ``` my-project/ ├── pom.xml └── src/ ├── main/ └── test/ ``` 执行流程: ```bash # 进入项目目录 cd my-project # 完整构建并安装到本地仓库 mvn install # 跳过测试快速安装 mvn install -DskipTests ``` --- 通过 `mvn install`,你可以高效管理本地依赖,提升多模块项目的协作效率。如果遇到构建失败,可检查 `pom.xml` 配置或查看控制台输出的错误日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值