Maven 常用操作

112 阅读1分钟

将本地jar文件安装至本地仓库

  • 打开cmd命令行,windows+r - cmd。输入以下命令
mvn install:install-file  -Dfile=C:\Users\25434\Desktop\xmlsectool-2.0.0.jar -DgroupId=net.shibboleth.tool -DartifactId=xmlsectool -Dversion=2.0.0 -Dpackaging=jar

如果出现maven命令不存在,则需要配置maven环境

地址:此电脑-右键属性-高级系统设置-高级-环境变量-新增系统变量

  • 变量名:MAVEN_HOME,变量值:maven文件夹所在位置
  • path:新增%MAVEN_HOME%\bin
  • 关闭cmd命令窗口,再次打开重试

image.png

SpringBoot 配置文件分离打包

<build>
  <!-- 打包的文件名 -->
  <finalName>${project.artifactId}-${project.version}</finalName>
  <plugins>
    <!-- 打JAR包 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <!-- 不打包资源文件(配置文件和依赖包分开) -->
        <excludes>
          <exclude>*.properties</exclude>
          <exclude>*.xml</exclude>
        </excludes>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
            <classpathPrefix>lib/</classpathPrefix>
            <!-- jar包不包含唯一版本标识 -->
            <useUniqueVersions>false</useUniqueVersions>
            <!--指定入口类 -->
            <mainClass>com.andy.main.Application</mainClass>
          </manifest>
          <manifestEntries>
            <!-- MANIFEST.MF 中 Class-Path 加入资源文件目录 -->
            <Class-Path>./resources/</Class-Path>
          </manifestEntries>
        </archive>
        <outputDirectory>${project.build.directory}</outputDirectory>
      </configuration>
    </plugin>

    <!-- 该插件的作用是用于复制依赖的jar包到指定的文件夹里 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
        <execution>
          <id>copy-dependencies</id>
          <phase>package</phase>
          <goals>
            <goal>copy-dependencies</goal>
          </goals>
          <configuration>
            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
          </configuration>
        </execution>
      </executions>
    </plugin>

    <!-- 该插件的作用是用于复制指定的文件 -->
    <plugin>
      <artifactId>maven-resources-plugin</artifactId>
      <executions>
        <execution> <!-- 复制配置文件 -->
          <id>copy-resources</id>
          <phase>package</phase>
          <goals>
            <goal>copy-resources</goal>
          </goals>
          <configuration>
            <resources>
              <resource>
                <directory>src/main/resources</directory>
                <includes>
                  <include>*.properties</include>
                  <include>*.yml</include>
                  <include>*.xml</include>
                </includes>
              </resource>
            </resources>
            <outputDirectory>${project.build.directory}/resources</outputDirectory>
          </configuration>
        </execution>
      </executions>
    </plugin>

    <!-- SpringBoot 打包插件,把 maven-jar-plugin 打成的jar包重新打成可运行jar包 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <!-- 重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖 -->
        <includes>
          <include>
            <groupId>null</groupId>
            <artifactId>null</artifactId>
          </include>
        </includes>
        <layout>ZIP</layout>
        <!-- 使用外部配置文件,jar包里没有资源文件 -->
        <addResources>true</addResources>
        <outputDirectory>${project.build.directory}</outputDirectory>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>