Maven
基础信息 & 常见配置
- Maven(百度百科)
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
- Maven依赖查询
Maven依赖库:mvnrepository
- Maven 国内源站加速
- IDEA maven 依赖冲突解决
Plugins : Maven Helper
- IDEA 搜索maven依赖
Plugins: Package Search
Maven 使用
项目在构建时你可能需要注意的
-
项目构建
如果项目不确定是否有子模块或者相关模块依赖关系,在创建项目时,最好构建父模块进行管理,但是父模块不要配置parent. -
父子模块打包
项目在打包时,在父模块进行package,如果在子模块进行package可能会出现子模块不是最新的情况或者不存在的情况 (因为只有在父模块package的时候,他会处理依赖关系,不需要其他模块install) -
mvn compile与mvn install、mvn deploy的区别
mvn compile,编译类文件
mvn install,包含mvn compile,mvn package,然后上传到本地仓库
mvn deploy,包含mvn install,然后,上传到私服 -
如果没有maven 如何把java项目打包成jar包
方法一: 我记得在大学中的第一个jar包是 Eclipse中的Export jar file
方法二: 在IDEA 中的 Project Structure -> Artifacts 新建jar 并添加相关依赖 -
详解一个fat-jar(spring-boot-jar)包
- 为什么有这块呢?可能你在使用打包工具 上述两种 or maven package后 找不到main class 时,可以通过jar包的目录结构及相关文件进行分析定位。
- BOOT-INF 包含lib和classes 一个是依赖,另一个是源码.(但是有些项目会把lib提取出来,打包的时候减少fat-jar体积,可能会没有classes)
- META-INF 包括MAINFEST.MF 和maven (启动信息 和 maven)
- 最主要的是Main-Class
-
spring boot plugin 插件配置项详解 它的configuration可以配置哪些参数
spring boot maven plugin Guide
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
- maven profile 如何优雅使用
可以通过maven profile 区分配置,可以区分jdk版本,仓库地址等功能
- spring boot maven wrapper 是什么? 如何使用
mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows 环境。
作用:Maven Wrapper更简单确保Maven构建的用户拥有运行Maven构建所需的一切。Maven对于用户来说非常稳定,但是随着Maven变化,用户将更容易拥有项目提供的完全封装的构建设置。Maven Wrapper更容易做到,这是从Gradle借来的好主意。
- maven常见插件 具体如何使用 resouces copy 打包本地依赖 grpc编译插件
link 文章末尾 grpc配置
- 子模块有systemPath,其他模块进行package时 依赖不进去子模块的systemPath 那他的流程是什么 root模块打包时可以的。
在spring boot maven plugin中配置
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
- spring boot 项目 使用外部化classpath 抽离固定依赖包
mvn dependency:copy-dependencies -DoutputDirectory=lib
-Dloader.path=dependency
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
<layout>ZIP</layout>
</configuration>
</plugin>
- spring boot 项目 linux下以服务启动
将SpringBoot 打包可执行Jar 并配置成Linux 系统服务
- spring boot 项目 windows服务
如何将Spring Boot项目部署为Windows服务,并设置开机启动
- Idea maven 无法下载源码
使用 maven 3.5.4 试下,一直在用哦
grpc配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<grpc.version>1.22.1</grpc.version>
<protobuf.version>3.7.1</protobuf.version>
</properties>
<dependencies>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
</dependencies>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>