001 创建项目
mvn archetype:generate -DgroupId=com.company.push.monitor -DartifactId=push-monitor -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false002 [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> <u><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></u> </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> <u><!-- package dependencies suitable for deployment to a cluster. --></u> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </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