簡體   English   中英

Spring 啟動外部屬性不適用於啟動 2.0.0.RELEASE,其中包含 spring 批次

[英]Spring boot external properties not working for boot 2.0.0.RELEASE with spring batch inside

我正在開發僅包含一個批處理作業的 spring 引導應用程序,這是批處理項目的我的 pom.xml(請注意,這是多模塊項目的一部分)

<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">
    <parent>
        <artifactId>parentPOM</artifactId>
        <groupId>groupiD</groupId>
        <version>VERSION</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>BATCH_PROJECT</artifactId>

    <properties>
<!--        <spring-boot.version>2.2.0.RELEASE</spring-boot.version> taken from parent pom-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>8</java.version>
        <spring-batch.version>4.2.0.RELEASE</spring-batch.version>
        <spring.version>5.2.0.RELEASE</spring.version>
        <ibm-mq-spring-jms-stater.version>2.2.0</ibm-mq-spring-jms-stater.version>
        <jackson.version>2.10.1</jackson.version>
        <mockito-core.version>3.1.0</mockito-core.version>
        <slf4j-log4j12.version>1.7.30</slf4j-log4j12.version>
        <guava.version>28.0-jre</guava.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <excludes>
                        <exclude>**IntegrationTest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <dependencies>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>${spring-batch.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>INTERNAL_CODE</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-test</artifactId>
            <version>${spring-batch.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <version>1.12.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>${spring-boot.version}</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ibm.mq</groupId>
            <artifactId>mq-jms-spring-boot-starter</artifactId>
            <version>${ibm-mq-spring-jms-stater.version}</version>
        </dependency>
        <dependency>
            <groupId>com.ibm.db2</groupId>
            <artifactId>db2jcc4</artifactId>
            <version>${db2jcc4.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>
    </dependencies>


</project>

構建項目后,我試圖運行它

java -jar my_app.jar --spring.config.location=file:./prop.properties --spring.config.name=prop

哪個不起作用我的工作是無法拾取定義的屬性( @Value中的代碼未解析)

在代碼中配置 class 我有static PropertySourcesPlaceholderConfigurer (也許它在某種程度上相關,但我懷疑它..)

我正在使用 windows 10,嘗試從不同的 shell 執行(cmd 和 git bash)

我在這里缺少什么?

事實證明,屬性文件中的spring.profiles=batch行以某種方式破壞了該文件解析,將其注釋掉解決了這個問題。

更新

實際上,這是一個錯字:\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM