NotFound
千里之行始于足下
Maven 基本使用
  • Apache Maven 3.6.3

生成 maven 工程

mvn archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DarchetypeVersion=1.4 \
  -DarchetypeCatalog=internal \
  -DgroupId=com.example \
  -DartifactId=demo \
  -Dversion=0.0.1-SNAPSHOT \
  -Dpackage=com.example.demo

pom.xml 修改编译目标版本:

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

编译、测试、打包等

# 移除 target 目录
mvn clean
# 编译
mvn compile
# 测试
mvn test
# 打包
mvn package
# 安装
mvn install

可执行 jar

默认情况 jar 找不到 Main 方法:

$ java -jar target/demo-0.0.1-SNAPSHOT.jar
target/demo-0.0.1-SNAPSHOT.jar中没有主清单属性

运行时指定入口

java -cp target/demo-0.0.1-SNAPSHOT.jar com.example.demo.App

maven-shade-plugin

pom.xml 中添加:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>com.example.demo.App</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

发布

TODO

参考


Last modified on 2020-05-19