Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 环境变量中的数据库名称_Java_Spring_Maven_Spring Boot_Jooq - Fatal编程技术网

Java 环境变量中的数据库名称

Java 环境变量中的数据库名称,java,spring,maven,spring-boot,jooq,Java,Spring,Maven,Spring Boot,Jooq,我的问题如下,我有一个Spring引导应用程序,我使用Jooq for sql,我设置pom来生成表。数据库信息在环境变量中设置。 它在Intellij中运行良好,但当我生成.WAR并在客户端上上载应用程序时,它只在客户端数据库名称与创建jooq代码时pom.xml中的名称相同时才起作用。 表是完全相同的,唯一可以更改的是数据库名称,所以我在环境变量中查找名称信息。 我的变量都是在属性中设置的,在调试过程中,我可以看到带有变量数据的连接对象 我的pom.xml如下所示: <?xml ver

我的问题如下,我有一个Spring引导应用程序,我使用Jooq for sql,我设置pom来生成表。数据库信息在环境变量中设置。 它在Intellij中运行良好,但当我生成.WAR并在客户端上上载应用程序时,它只在客户端数据库名称与创建jooq代码时pom.xml中的名称相同时才起作用。 表是完全相同的,唯一可以更改的是数据库名称,所以我在环境变量中查找名称信息。
我的变量都是在属性中设置的,在调试过程中,我可以看到带有变量数据的连接对象

我的pom.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>com.speedsoft</groupId>
<artifactId>bedelServer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--    <packaging>jar</packaging>-->
<packaging>war</packaging>

<name>BWS</name>
<description>BWS</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <java.version>1.8</java.version>
    <quartz.version>2.2.1</quartz.version>
    <jooq.version>3.9.1</jooq.version>
    <logback.version>1.2.3</logback.version>
    <logbackaccess.version>1.3.0-alpha4</logbackaccess.version>
    <mysql.version>6.0.3</mysql.version>
    <exec-maven-plugin>1.7</exec-maven-plugin>

    <start-class>com.speedsoft.bws.BwsApplication</start-class>
</properties>



<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>${quartz.version}</version>
    </dependency>

    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz-jobs</artifactId>
        <version>${quartz.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>

    <dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq</artifactId>
        <version>${jooq.version}</version>
    </dependency>

    <dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq-meta</artifactId>
        <version>${jooq.version}</version>
    </dependency>

    <dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq-codegen</artifactId>
        <version>${jooq.version}</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>2.0.6.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-access</artifactId>
        <version>${logbackaccess.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.3.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.0.1</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>3.8.3</version>

            <!-- The plugin should hook into the generate goal -->
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>

            <dependencies/>

            <configuration>
                <jdbc>
                    <driver>${jdbc.driver}</driver>
                    <url>${jdbc.url}</url>
                    <user>${jdbc.user}</user>
                    <password>${jdbc.password}</password>
                </jdbc>

                <generator>
                    <database>
                        <inputSchema>bedel</inputSchema>
                        <name>org.jooq.util.mysql.MySQLDatabase</name>
                    </database>
                    <target>
                        <packageName>com.speedsoft.bws.jooq.model</packageName>
                        <directory>target/generated-sources/jooq</directory>
                        <encoding>UTF-8</encoding>
                    </target>
                    <generate>
                    <fluentSetters>false</fluentSetters>
                    <daos>false</daos>
                    </generate>
                </generator>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <systemProperties>
                    <systemProperty>
                        <key>jdbc.driver</key>
                        <value>${jdbc.driver}</value>
                    </systemProperty>
                    <systemProperty>
                        <key>jdbc.user</key>
                        <value>${jdbc.user}</value>
                    </systemProperty>
                    <systemProperty>
                        <key>jdbc.password</key>
                        <value>${jdbc.password}</value>
                    </systemProperty>
                    <systemProperty>
                        <key>jdbc.url</key>
                        <value>${jdbc.url}</value>
                    </systemProperty>
                </systemProperties>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <jdbc.user>root</jdbc.user>
            <jdbc.password>%47**¨00</jdbc.password>
            <jdbc.url>jdbc:mysql://localhost:3306/bedel?serverTimezone=UTC</jdbc.url>
            <jdbc.driver>com.mysql.cj.jdbc.Driver</jdbc.driver>
        </properties>
    </profile>
</profiles>
com.speedsoft
贝德尔服务器
0.0.1-快照
战争
BWS
BWS
org.springframework.boot
spring启动程序父级
2.0.1.1发布
UTF-8
UTF-8
1.8
1.8
1.8
2.2.1
3.9.1
1.2.3
1.3.0-4
6.0.3
1.7
com.speedsoft.bws.bws应用程序
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动机tomcat
假如
org.springframework.boot
弹簧起动试验
测验
org.springframework.boot
弹簧启动机tomcat
编写
org.quartz-scheduler
石英
${quartz.version}
org.quartz-scheduler
石英工作
${quartz.version}
org.springframework.boot
弹簧靴起动器石英
mysql
mysql连接器java
${mysql.version}
org.jooq
约克
${jooq.version}
org.jooq
约克梅塔
${jooq.version}
org.jooq
约克代码根
${jooq.version}
回写
回归经典
${logback.version}
org.slf4j
七月至六月
org.slf4j
log4j-over-slf4j
org.springframework.data
spring数据共享
2.0.6.1发布
回写
回写访问
${logbackaccess.version}
org.apache.httpcomponents
httpclient
4.5
org.apache.httpcomponents
httpime
4.3.1
org.apache.httpcomponents
httpcore
4.4.9
org.apache.httpcomponents
httpcore
4.0.1
org.jooq
jooq codegen maven
3.8.3
生成
${jdbc.driver}
${jdbc.url}
${jdbc.user}
${jdbc.password}
贝德尔
org.jooq.util.mysql.MySQLDatabase
com.speedsoft.bws.jooq.model
目标/生成源/jooq
UTF-8
错误的
错误的
org.codehaus.mojo
execmaven插件
1.5.0
执行官
jdbc.driver
${jdbc.driver}
jdbc.user
${jdbc.user}
最后面
${jdbc.password}
jdbc.url
${jdbc.url}
违约
符合事实的
根
%47**¨00
jdbc:mysql://localhost:3306/bedel?serverTimezone=UTC
com.mysql.cj.jdbc.Driver

我必须如何配置pom.xml,以便在生成.WAR时不会插入与代码生成时具有相同名称的数据库的依赖关系

我必须在模式中输入所有可能的名称吗

<schemata>
  <schema>
    <inputSchema>ui</inputSchema>
  </schema>
  <schema>
    <inputSchema>other_schema</inputSchema>
  </schema>
</schemata>

用户界面
其他模式
读取环境变量 通过使用
${env.VARIABLE_NAME}
语法。如果您知道只有两个模式,但它们的特定名称可能因环境而异,则可以编写:

<schemata>
  <schema>
    <inputSchema>${env.UI_SCHEMA}</inputSchema>
  </schema>
  <schema>
    <inputSchema>${env.OTHER_SCHEMA}</inputSchema>
  </schema>
</schemata>

${env.UI_SCHEMA}
${env.OTHER_SCHEMA}
使用编程代码生成配置 始终存在实现编程代码生成配置的可能性,这将允许对输入模式进行更动态的配置。本文对此进行了说明:

使用运行时模式映射 您可以选择在版本控制中签入生成的代码(有其优点和缺点),并使用运行时模式映射功能在运行时修补生成的模式,而不是根据环境重新生成代码:

您是否尝试使用application.properties设置这些?我的变量都在属性中设置,问题是当我生成war(mvn安装)时,即使我的连接对象已经具有正确配置的数据库名称,应用程序也会查找生成名称“bedel”“对于您的远程环境,您还需要一个maven profile
mvn包-