# 更换镜像源

maven.xml (opens new window) 下载到 用户文件夹/.m2/maven.xml 即可修改为阿里云。

wget -O ~/.m2/settings.xml https://blog.lyh543.cn/mirrors/maven.xml

# 打包成一个 jar 并部署

对于一般项目,可以在 pom.xml 中添加以下插件(注意修改 com.example.Main 为你的 main 函数所在类名):

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

运行 mvn clean install 即可生成 /target/ARTIFACTID-0.0.1-SNAPSHOT-jar-with-dependencies.jar


对于 Spring Boot 项目,由于其项目结构不同于普通项目,不能使用上述方法。

普通项目解包后的 /META-INF/MANIFEST.INF

Manifest-Version: 1.0
Created-By: Maven Archiver 3.5.0
Build-Jdk-Spec: 16
Main-Class: com.aurora.drivesyncer.AuroraDriveSyncerBackendApplication

Spring Boot 项目解包后的 /META-INF/MANIFEST.INF

Manifest-Version: 1.0
Created-By: Maven Jar Plugin 3.2.0
Build-Jdk-Spec: 16
Implementation-Title: Aurora-DriveSyncer-backend
Implementation-Version: 0.0.1-SNAPSHOT
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.aurora.drivesyncer.AuroraDriveSyncerBackendApplication
Spring-Boot-Version: 2.5.4
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx

可见 Spring Boot 项目的 Main-Class 不是我们的 Main,而是 Spring Boot 的 JarLauncher

Spring Boot 项目应当使用以下插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

运行 mvn clean install 即可生成 /target/ARTIFACTID-0.0.1-SNAPSHOT.jar

生成以后复制到服务器,然后在服务器 java -jar ARTIFACTID-0.0.1-SNAPSHOT.jar 即可。