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

时间:2014-04-23 10:14:19

标签: java postgresql maven

运行exec-maven-plugin我收到此错误:

psql: FATAL:  database <user> does not exist

显然我没有用username命名的数据库,我也不想创建一个。一些为什么maven插件没有读我的-d etsydb 在cmd中我执行psql -d etsydb -p 5433 -U postgres它会看到db。  我让它与蚂蚁合作:

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

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

首先在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>