项目突然要搞 flink, 重新熟悉maven
Maven Project
GroupId/ArtifactId: Maven 坐标
Create
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
cd my-app
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
The POM
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Build
mvn package
action
- validate
- generate-sources
- process-sources
- generate-resources
- process-resources
- compile…
compiled and executed jars
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
Java 9 or later
maven-compiler-plugin 3.6.0+
Maven Phases
- validate
- compile
- test
- package
- integration-test
- verify
- install
- deploy
Maven lifecycles
- clean: cleans up artifacts created by prior builds
- site: generates site documentation for this project
exeuted in sequence
mvn clean dependency:copy-dependencies package
mvn site