【问题标题】:Why is maven not packaging my hibernate-mapping file?为什么 maven 不打包我的休眠映射文件?
【发布时间】:2011-04-05 00:20:56
【问题描述】:

我将 Maven 2 和 Hibernate 用于 Java Web 应用程序。

我在同一个源文件夹中有一个 Hibernate 映射文件 Domain.hbm.xml,其中包含多个域类。

如果我运行mvn clean package我发现这个文件没有复制到目标文件夹的war文件中。

但是,如果我只执行mvn clean 然后转到 eclipse 并从 Project 菜单中选择 Clean,则文件将发送到目标中的适当位置。然后我可以通过mvn package 成功打包一个可以访问数据库的war 文件。

这是一个 pom 设置吗?怎么回事?

【问题讨论】:

  • 你确定你的xml文件在resources文件夹下吗?

标签: java hibernate maven-2


【解决方案1】:

您希望直接在类路径中结束的 Java 源以外的资源(在您的情况下位于 /WEB-INF/classes 中)必须位于您的 src/main/resources 目录中,而不是 src/main/java。

【讨论】:

    【解决方案2】:

    如果我运行 mvn clean package 我发现这个文件没有复制到目标文件夹的war文件中。

    那么映射文件可能不在默认资源目录(src/main/resources),而是在源目录(src/main/java),Maven默认不会将它们复制到构建输出目录。

    但是,如果我只执行 mvn clean 然后转到 eclipse 并从 Project 菜单中选择 Clean,则文件将发送到目标中的适当位置。然后我可以执行 mvn package 以成功打包一个可以访问数据库的 war 文件。

    在 Eclipse 下,我的猜测是源目录中的文件被复制到构建输出目录,包括应用程序资源文件。因此,当您在 Eclipse 清理步骤之后运行 package 时,这会以某种方式“欺骗”Maven。但这无所谓,master是Maven,其他的都无关紧要。

    要修复它,请将您的映射文件移动到src/main/resources。或者将它们保存在src/main/java 中并将源目录声明为“额外”资源目录:

    <build>
      <resources>
        <resource>
          <directory>src/main/resources</directory>
        </resource>
        <resource>
          <directory>src/main/java</directory>
          <excludes>
             <exclude>**/*.java</exclude>
          </excludes>
        </resource>
      </resources>
    </build>
    

    有些人这样做,我更喜欢使用单独的目录。

    【讨论】:

      【解决方案3】:

      我有同样的问题。这解决了我的问题。

      <sourceDirectory>src/main/java</sourceDirectory>  
          <resources>
              <resource>
                  <directory>src/main/java</directory>
                      <includes>
                          <include>**/*.xml</include>
                          <include>**/*.properties</include>
                      </includes>
              </resource>
          </resources>
      

      【讨论】:

        【解决方案4】:

        也面临同样的问题

        以下 pom.xml 中的更改解决了我的问题

        <build>
            <finalName>spring-mvc-jquery</finalName>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                        <include>**/*.properties</include>
                    </includes>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        

        对于不同的 maven 版本,请遵循相应的版本布局。

        【讨论】:

          猜你喜欢
          • 2017-11-07
          • 2021-08-04
          • 2015-08-31
          • 1970-01-01
          • 2014-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多