-
Maven Mini Guides
-
Configuring for Reproducible Builds
使用Maven實現重複構建。
檢查當前使用的外掛的版本。mvn artifact:check-buildplan
修改
pom.xml
,增加如下配置,顯式指定project.build.outputTimestamp
的取值:<properties> <project.build.outputTimestamp>2023-01-01T00:00:00Z</project.build.outputTimestamp> </properties>
執行完整構建,執行如下命令:
mvn clean install
再次執行構建,同時比較二進位制是否一致,執行如下命令:
mvn clean verify artifact:compare
-
Guide to creating assemblies
使用maven-assembly-plugin
,可以指定構建目標檔案的檔案佈局和格式。
修改專案的pom.xml
,增加外掛的配置,內容樣例如下:<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <descriptors> <descriptor>src/assembly/dep.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>create-archive</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
在專案路徑
${project.basedir}/src/assembly
下放置佈局檔案,以上述配置為例,佈局檔案為dep.xml
,內容樣例,如下:<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> <id>bin</id> <formats> <format>tar.gz</format> <format>tar.bz2</format> <format>zip</format> </formats> <fileSets> <fileSet> <directory>${project.basedir}</directory> <outputDirectory>/</outputDirectory> <includes> <include>README*</include> <include>LICENSE*</include> <include>NOTICE*</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>/</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}/site</directory> <outputDirectory>docs</outputDirectory> </fileSet> </fileSets> </assembly>
執行構建,命令如下,即可觀察效果。
mvn package
-
Guide to Configuring Archive Plugins
對於常規的jar
/war
/ejb
/ear
/assembly
外掛,預設情況下,在構建結果檔案中增加目錄META-INF/maven
,包含檔案pom.xml
和pom.properties
。
透過修改archive
的配置,可以關閉前述預設行為,樣例如下:<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> </configuration> </plugin> </plugins> </build> ... </project>
-
Configuring Maven
常見的配置,比如:- 本地倉庫的路徑。
- 透過代理,下載依賴軟體。
- 下載依賴軟體時的並行度。
- 上傳構建目標檔案時,增加安全性。
- 遠端倉庫的配置,比如映象。
- 構建場景的配置。
- 構建工具鏈的配置。
-
Guide to generating sources
對於參與generate-sources
階段的外掛,構建時會自動生成程式碼,如下是外掛antlr4-maven-plugin
的樣例配置:<project> ... <build> <plugins> <plugin> <groupId>org.antlr</groupId> <artifactId>antlr4-maven-plugin</artifactId> <version>4.5.3</version> <executions> <execution> <id>antlr</id> <goals> <goal>antlr4</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ... </project>
外掛生成的程式碼,可參與後續的
compile
階段。 -
Guide to Working with Manifests
可參考Apache Maven Archiver -
Guide to Maven Classloading
Maven工具在執行過程中涉及到的類載入器,以及各自的用途。 -
Guide to Working with Multiple Modules
對於多個模組組成的專案,Maven 3.X版本的工作流程。 -
Guide to Working with Multiple Modules in Maven 4
對於多個模組組成的專案,Maven 4.X版本的工作流程。 -
Releasing
目前在專案中沒有使用過。 -
Guide to using Ant with Maven
藉助於外掛maven-antrun-plugin
,在構建過程中,可以定製shell指令碼,定製構建行為。
如下是樣例,在generate-sources
階段呼叫指令碼${project.basedir}/src/main/sh/do-something.sh
:<project> <modelVersion>4.0.0</modelVersion> <artifactId>my-test-app</artifactId> <groupId>my-test-group</groupId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <phase>generate-sources</phase> <configuration> <tasks> <exec dir="${project.basedir}" executable="${project.basedir}/src/main/sh/do-something.sh" failonerror="true"> <arg line="arg1 arg2 arg3 arg4" /> </exec> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
-
Guide to using Modello
Modello的介紹,如下:- 文件
- 樣例
在專案中沒有使用過。
-
Using Extensions
自定義擴充套件,修改Maven的行為。 -
Building For Different Environments
利用profile,針對不同的構建場景,比如可定義不同的外掛和引數。 -
Guide to Using Toolchains
構建專案時,透過使用Toolchains,構建專案時使用不同於執行Maven的JDK等。
Maven快速上手使用指南的筆記
相關文章
- Maven使用指南的筆記Maven筆記
- Maven快速上手Maven
- Spring Boot 學習筆記(1):快速上手Spring Boot筆記
- Dubbo | Dubbo快速上手筆記 - 環境與配置筆記
- Maven 筆記Maven筆記
- Maven筆記(更新中)Maven筆記
- Maven經典使用指南Maven
- Git和Maven的學習筆記GitMaven筆記
- Maven筆記---超詳細Maven筆記
- Javaxuex學習筆記---MavenJava筆記Maven
- docker 快速上手Docker
- Redis 快速上手Redis
- JDBC快速上手JDBC
- Flask快速上手Flask
- gtest快速上手
- 快速上手BootstrapVuebootVue
- ElasticJob 快速上手AST
- webpack 學習筆記:上手就來Web筆記
- 2小時上手Spring Boot 筆記Spring Boot筆記
- 關於maven的一份小筆記Maven筆記
- idea ssm maven專案搭建筆記IdeaSSMMaven筆記
- 《Maven實戰》之讀書筆記Maven筆記
- Vue框架快速上手Vue框架
- 快速上手之dockerDocker
- 【On Nacos】快速上手Nacos
- Flask之旅: 快速上手Flask
- Ansible awx 快速上手
- SpringBoot-快速上手Spring Boot
- Maven快速入門(五)Maven的依賴管理Maven
- 快速上手最新的 Vue CLI 3Vue
- VS Code 快速使用指南
- 【AI筆記】百度UNIT平臺上手AI筆記
- Maven實戰與原理分析(一):maven超全使用指南總結Maven
- Vue3快速上手Vue
- LLaMA快速上手指南
- 快速上手Linux核心命令Linux
- gdb除錯快速上手除錯
- Zalando Postgres Operator 快速上手