Maven Quicktart

139 阅读1分钟

沉淀 Maven 日常使用的样板式代码,旨在快速开始提升开发速度。

Settings.xml

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

  <servers>
    <server>
      <id>company-123</id>
      <username>username</username>
      <password>password</password>
    </server>
  </servers>

  <mirrors>
  </mirrors>

  <activeProfiles>
    <activeProfile>person</activeProfile>
  </activeProfiles>

  <profiles>
    <profile>
      <id>company-123</id>
      <activation>
      </activation>
      <repositories>
        <repository>
          <id></id>
          <url></url>
        </repository>     
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id></id>
          <url></url>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <profile>
      <id>person</id>
      <activation>
        <jdk>[11,17]</jdk>
      </activation>
      <repositories>
        <repository>
          <id>aliyun-maven</id>
          <url>https://maven.aliyun.com/repository/public</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>aliyun-maven</id>
          <url>https://maven.aliyun.com/repository/public</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

</settings>

指定 Java 版本

  <properties>
    <java.version>17</java.version>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.compiler.source>${java.version}</maven.compiler.source>
  </properties>

常用依赖

日志

测试 (Jupiter)

* Maven Respotiroy 最新 Jupiter

<junit-jupiter.version>5.7.0</junit-jupiter.version>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>${junit-jupiter.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>${junit-jupiter.version}</version>
      <scope>test</scope>
    </dependency>

Maven 插件

执行 java 程序

    <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version> 
    <main.verticle>com.onemsg.vertx.play.MainVerticle</main.verticle>
    <launcher.class>io.vertx.core.Launcher</launcher.class>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>${exec-maven-plugin.version}</version>
    <configuration>
      <mainClass>${launcher.class}</mainClass>
      <arguments>
        <argument>run</argument>
        <argument>${main.verticle}</argument>
      </arguments>
    </configuration>
  </plugin>

使用: mvn exec:java

打包可执行 jar

    <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
    <main.class></main.class>
    <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${maven-shade-plugin.version}</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <manifestEntries>
                                <Main-Class>${main.class}</Main-Class>
                            </manifestEntries>
                        </transformer>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                    </transformers>
                    <outputFile>
                        ${project.build.directory}/${project.artifactId}-${project.version}-fat.jar
                    </outputFile>
                </configuration>
            </execution>
        </executions>
    </plugin>

使用: mvn package