日常构建的应用程序在服务器部署时需要将所依赖的jar打包放在一起,方便部署。本文主要使用maven的build和assembly生成可直接部署的打包程序(zip格式)。
BUILD插件介绍
maven-surefire-plugin
Surefire Plugin是Maven的一个插件,用于执行Java单元测试。它提供了一种方便的方式来运行测试,并生成测试报告。
Surefire Plugin主要有以下特点和功能:
Test
结尾的类,并执行其中的测试方法。使用举例如下:
org.apache.maven.plugins
maven-surefire-plugin
3.0.0-M5
**/*Test.java
${project.build.directory}/surefire-reports
plain
maven-dependency-plugin
Maven Dependency Plugin是Maven的一个插件,用于管理和操作项目的依赖项。它提供了一系列功能,可以帮助你分析、解决依赖冲突、复制依赖项等。
以下是Maven Dependency Plugin的一些常见功能:
dependency:tree
目标来生成依赖树,并查看项目中所有依赖项的层级关系。dependency:copy
目标来指定要复制的依赖项和目标目录,以便将依赖项用于其他用途,如打包、部署等。dependency:resolve
目标来解析依赖项,并输出有关每个依赖项的信息,如版本、文件路径等。dependency:copy-dependencies
目标来复制依赖项,并根据不同的过滤器配置来选择性地复制特定的依赖项。dependency:analyze
目标来生成依赖报告,其中包括未使用的依赖项、潜在的依赖冲突等。使用举例如下:
org.apache.maven.plugins
maven-dependency-plugin
3.1.2
copy-dependencies
package
copy-dependencies
${project.build.directory}/lib
maven-jar-plugin
Maven Jar Plugin是Maven的一个插件,用于创建可执行的JAR文件。它允许你将项目的编译输出打包为一个JAR文件,并可以配置JAR文件的属性、依赖项等。
常见功能如下:
举例:
org.apache.maven.plugins
maven-jar-plugin
3.2.2
com.example.Main
maven-assembly-plugin
Maven Assembly Plugin是Maven的一个插件,用于创建自定义的发布包。它提供了一种灵活的方式来组装和打包项目的构建产物,包括生成zip、tar、jar等格式的归档文件。
Maven Assembly Plugin的主要功能和特点如下:
使用举例如下:
org.apache.maven.plugins
maven-assembly-plugin
3.3.0
src/main/assembly/assembly.xml
zip
${project.build.directory}/dist
make-assembly
package
single
maven-antrun-plugin
Maven Antrun Plugin是Maven的一个插件,用于在构建过程中执行Ant任务。它允许你使用Ant的功能来扩展和定制项目的构建过程。
Maven Antrun Plugin的主要功能和特点如下:
使用举例:
org.apache.maven.plugins
maven-antrun-plugin
3.0.0
run-ant-task
compile
run
maven-deploy-plugin
Maven Deploy Plugin是Maven的一个插件,用于将构建产物(例如JAR、WAR或其他类型的文件)部署到Maven仓库或远程仓库。它提供了一种方便的方式来发布和共享你的构建产物,以便其他开发人员或项目可以使用它们作为依赖。
Maven Deploy Plugin的主要功能和特点如下:
pom.xml
文件中配置仓库信息,包括仓库的URL、用户名、密码等。这样,在部署过程中,插件可以使用这些信息来连接到仓库并进行部署操作。使用举例:
dynamic-data-source-demo
dynamic-data-source-demo
jar
8
8
dynamic-data-source-demo
dynamic-db
1.0-SNAPSHOT
java
org.apache.maven.plugins
maven-deploy-plugin
3.0.0-M1
my-repository
https://example.com/repository
my-username
my-password
maven-install-plugin
Maven Install Plugin是Maven的一个插件,用于将项目构建产物(例如JAR、WAR或其他类型的文件)安装到本地仓库。它提供了一种方便的方式来在本地构建环境中使用构建产物作为依赖。
使用举例:
org.apache.maven.plugins
maven-install-plugin
3.0.0-M1
install-artifact
install
install
${project.build.directory}/my-artifact.jar
${project.build.directory}/my-artifact-sources.jar
${project.build.directory}/my-artifact-javadoc.jar
相关配置
最终配置完如下:
pom文件
src/main/resources
org.apache.maven.plugins
maven-surefire-plugin
3.1.2
true
org.apache.maven.plugins
maven-dependency-plugin
3.6.0
runtime
copy-dependencies
package
copy-dependencies
${project.build.directory}/lib
false
false
org.apache.maven.plugins
maven-jar-plugin
3.3.0
${project.name}
${project.release.name}-${project.release.version}
${maven.build.timestamp} UTC
spring/**
sqlmap/**
*.xml
*.yml
org.apache.maven.plugins
maven-assembly-plugin
3.6.0
${project.release.name}
false
src/main/assembly/assembly.xml
make-assembly
package
single
org.apache.maven.plugins
maven-antrun-plugin
3.1.0
version
prepare-package
run
rename
package
run
org.apache.maven.plugins
maven-deploy-plugin
3.1.1
true
org.apache.maven.plugins
maven-install-plugin
3.1.1
true
assembly.xml
文件如下:
demo
zip
false
src/main/bin
bin
0750
0740
target/lib
lib/
**/**
0750
0740
target/classes
lib/conf
spring/**
sqlmap/**
*.xml
*.yml
0750
0740
target
module.properties
0740
lib
runtime
${groupId}:${artifactId}
0640
打包效果
target目录:
dynamic-data-source-demo-1.0-SNAPSHOT.zip如下:
module.properties文件如下:
appName=dynamic-data-source-demo
version=1.0-SNAPSHOT
container=java
Build time=2023-10-01 13:52:34