繁体   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