【问题标题】:Maven doesn't generate the "persistence.xml" fileMaven 不生成“persistence.xml”文件
【发布时间】:2010-08-17 21:20:15
【问题描述】:

我在 maven 项目网页上阅读了this article,其中列出了不同的目录布局(例如:用于应用程序/库资源的 src/main/resources)。

问题是当我运行以下命令时(found here):

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

src/main/resources/META-INF 目录未创建。这对我很重要,因为我想访问该目录中的“persistence.xml”。

我应该在 mvn 命令中添加一个选项吗?如何自动生成包含“META-INF/persistence.xml”文件的“src/main/resources”?

谢谢, 问候

【问题讨论】:

    标签: java maven-2 jpa


    【解决方案1】:

    问题是,当我运行以下命令 (...) 时,没有创建 src/main/resources/META-INF 目录。这对我很重要,因为我想访问该目录中的“persistence.xml”。

    maven 快速入门原型不会创建src/main/resourcessrc/test/resources。有几种解释:

    • 正如其名称所述,此原型允许快速启动项目,由您决定。
    • 为什么这个原型应该创建src/main/resources 而不是src/main/assembly
    • 实际上在很长一段时间内都无法创建空目录(请参阅ARCHETYPE-57)。

    换句话说,如果您使用此原型,只需手动添加src/main/resources/META-INF/persistence.xml

    我应该在 mvn 命令中添加一个选项吗?如何自动生成包含“META-INF/persistence.xml”文件的“src/main/resources”?

    你不能用这个原型 - 我真的不明白为什么这是一个如此大的问题。

    虽然有一个 JPA 原型:

    mvn原型:创建\ -DgroupId=com.mycompany.project \ -DartifactId=我的项目域\ -DpackageName=com.company.project.domain \ -DarchetypeGroupId=com.rfc.maven.archetypes \ -DarchetypeArtifactId=jpa-maven-archetype \ -DarchetypeVersion=1.0.0 \ -DremoteRepositories=http://maven.rodcoffin.com/repo

    这将创建以下引导 JPA 项目:

    $树我的项目域/ 我的项目域/ ├── pom.xml └── 源 ├── 主要 │   ├── java │   │   └── com │   │   └── 公司 │   │   └── 项目 │   │   └── 域名 │   │   └── User.java │   └── 资源 │   └── META-INF │   └── persistence.xml └── 测试 ├── java │   └── com │   └── 公司 │   └── 项目 │   └── 域名 │   ├── DbUnitDataLoader.java │   └── UserTest.java └── 资源 └── user.db.xml 16个目录,6个文件

    【讨论】:

    • @downvoter 想解释一下为什么这个答案值得一票否决?你能告诉我这个答案的哪一部分不正确吗?
    【解决方案2】:

    不要太依赖maven为你做事。这些原型只是用来提供基本模板。如果他们没有为您创建文件,请继续自己创建。

    【讨论】:

      【解决方案3】:

      您在这里使用了快速入门原型,即示例,更多信息here。 如果你想要一个 Java EE 标准布局,你应该使用 maven-archetype-j2ee-simple 原型:

      mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-j2ee-simple -DinteractiveMode=false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-04
        • 2019-04-25
        • 2011-10-05
        • 1970-01-01
        • 2010-12-04
        • 2013-04-10
        • 2020-02-06
        • 2013-10-19
        相关资源
        最近更新 更多