当前位置: 首页 > 知识库问答 >
问题:

用Maven和Spring用参数设置热再加载

吕树
2023-03-14

我有一个maven生成的项目。这是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ru.fsep</groupId>
    <artifactId>abacus-web</artifactId>
    <version>0.1</version>
    <packaging>${packaging.type}</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>
    <profiles>
        <profile>
            <id>LOCAL</id>
            <properties>
                <packaging.type>jar</packaging.type>                    
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-devtools</artifactId>
                    <scope>runtime</scope>
                </dependency>
            </dependencies>
        </profile>            
    </profiles>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>23.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
@mvn package -PLOCAL
java -jar -Dspring.profiles.active=rganeyev target/abacus-web-0.1.jar

当运行完全打包的应用程序时,开发人员工具将自动禁用。如果您的应用程序是从Java-JAR启动的,或者是从一个特殊的类加载器启动的,那么它就被认为是一个“生产应用程序”。

要使用热重加载,我不能使用java-jar,而只能使用mvn实用程序。我尝试运行mvn spring-boot:run-plocal-dspring.profiles.active=rganeyev,但它不使用属性文件并崩溃。热运行maven和使用我的属性文件?

共有1个答案

郏佐
2023-03-14

嗨,尝试将配置文件定义添加到POM中。

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <profiles>
                <profile>rganeyev</profile>
            </profiles>
        </configuration>
    </plugin>
</plugins>

而不是用个人资料来称呼它:

mvn spring-boot:run -Dspring-boot.run.profiles=rganeyev
 类似资料:
  • 我可能是docker领域的新手,并尝试将我的Spring-Boot项目与docker和docker-compose结合起来,但docker-compose不起作用。 我正在使用com.spotify maven插件,如Spring Boot文档中所述。我可以使用spotify插件构建和运行docker映像,也可以使用docker命令从命令行构建和运行docker映像,但当我尝试使用docker-c

  • 问题内容: 我经常运行一个简单的bash命令: 正常工作。 但是现在我试图将其编写为bash文件的脚本,并使其更加灵活: 但是,这一直在生成错误: 错误来自于如何处理和引用。 我尝试了各种转义,不同的措词,甚至制作了数组,都使用进行了处理。 到目前为止,我的尝试还没有成功。 显然,我想要的非常简单。我只是不确定如何完成它。 如何让bash 正确处理我的论点? 问题答案: 问题在于变量替换后不处理引

  • 问题内容: 我正在试验Jenkins,并且正在寻找一种方法来允许Jenkins为不同的项目构建设置参数。通常,所有这些属性都存储在settings.xml中(我目前为运行Jenkins的用户提供了settings.xml,其中包括默认属性和我的存储库)。 我想要同一项目的不同版本,这些版本特定于不同的Maven参数以及不同的目标。(有一项工作经常运行编译检查,另一项工作每小时将应用程序部署到测试服

  • 我有两个环境来设置我的API,所以我有生产和开发。我首先需要的是找到一种方法来自动完成这一任务,例如,在运行时,不发送任何参数(-d)应用程序找到了一种方法来识别环境,但我没有找到任何方法来完成这一任务。 所以我看了一个教程,在同样有一个方法放了一个环境变量,并定义了我的application.properties。所以在下面的步骤中: > 我在我的应用程序中定义了3个文件,application

  • 问题内容: 我正在尝试根据某个Maven配置文件是否处于活动状态来使用数据库信息配置Spring配置文件。我已经看到了一些答案,但是很难将它们放在一起。 我有一个这样的Maven个人资料: 还有一个settings.xml文件,如下所示: 并在servlet-context.xml中: 我的问题基本上是,如何将Maven属性放入servlet- context.xml文件中?我需要一个.prope