首页 > 解决方案 > 为什么“mvn deploy”命令正在重建 .jar?

问题描述

我正在开发spring-bootJava 应用程序。我正在尝试.jar使用带有 profile 的 maven 构建和发布。但不知何故,mvn deploy命令再次重建.jar

option 1:我使用mvn clear install -Pdevmvn deploy -Dmaven.install.skip=true没有配置文件及其部署默认.jar文件

option 2:我也在发布期间传递了个人资料 ID。mvn deploy -Dmaven.install.skip=true它工作正常,但它再次重建一切,我们不想在期间再次使用 maven 配置文件名称mvn deploy

pom.xml

<project...>
 ...
 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <spring.profile.id>dev</spring.profile.id>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <spring.profile.id>prod</spring.profile.id>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-devtools</artifactId>
                    <version>2.1.6.RELEASE</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

</project>

mvn clean install -Pdev

 [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ xyz- 
 profile 
 [INFO] Building jar: /sys_apps_01/jenkins/workspace/xyz-profile-0.0.3- 
 SNAPSHOT.jar

mvn deploy mvn deploy -Pdev

I am getting below logs for both deploy command:

[DEBUG] isUp2date: false (Destination /sys_apps_01/jenkins/workspace/xyz- 
profile-0.0.3-SNAPSHOT.jar not found.)
[INFO] Building jar: /sys_apps_01/jenkins/workspace/xyz-profile-0.0.3- 
SNAPSHOT.jar

谁能帮我理解,为什么在部署时再次重建?

标签: mavenspring-bootmaven-profiles

解决方案


您应该阅读 Maven 生命周期以了解正在发生的事情:https ://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

因此,当您执行deploy命令时,maven 会触发生命周期中的所有先前目标:

  • 证实
  • 编译
  • 测试
  • 包裹
  • 核实
  • 安装

然后deploy


推荐阅读