Maven exec 插件数据库<user>不存在



运行exec-maven插件时,我收到以下错误:

psql: FATAL:  database <user> does not exist

显然,我并没有用用户名命名的数据库,我也不想创建一个。为什么maven插件没有读取我的-d etsydb当在cmd中执行psql -d etsydb -p 5433 -U postgres时,它会看到数据库。我用它来对付蚂蚁:

<exec executable="psql">
    <arg value="-p"/>
    <arg value="5433"/>
    <arg value="-U"/>
    <arg value="postgres"/>
    <arg value="-d"/>
    <arg value="etsydb"/>
    <arg value="-f"/>
    <arg value="src/main/sql/etsydbbackup.sql"/>
</exec>

然后我把它翻译成maven插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>exec</goal>
            </goals>
            <configuration>
                <executable>psql</executable>
                <arg value="-p"/>
                <arg value="5433"/>
                <arg value="-U"/>
                <arg value="postgres"/>
                <arg value="-d"/>
                <arg value="etsydb"/>
                <arg value="-f"/>
                <arg value="src/main/sql/etsydbbackup.sql"/>
            </configuration>
        </execution>
    </executions>
</plugin>

我在这里做错了什么?

首先,在Maven中通常不使用XML属性,这让我想到了以下内容:

您必须使用以下内容:

   <arguments>
       <argument>-p</argument>
       <argument>5433</argument>
       <argument>-U</argument>
       <argument>postgres</argument>
       <argument>-d</argument>
       <argument>etsysdb</argument>
       <argument>-f</argument>
       <argument>src/main/sql/etsysdbbackup.sql</argument>
   </arguments>

相关内容

最新更新