Maven不会生成“persistence.xml”文件

时间:2010-08-17 21:20:16

标签: java maven-2 jpa

我在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”?

谢谢你, 此致

3 个答案:

答案 0 :(得分:8)

  

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

maven quickstart原型不会创建src/main/resources也不会src/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 archetype:create \
  -DgroupId=com.mycompany.project \
  -DartifactId=my-project-domain \
  -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项目:

$ tree my-project-domain/
my-project-domain/
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── company
    │   │           └── project
    │   │               └── domain
    │   │                   └── User.java
    │   └── resources
    │       └── META-INF
    │           └── persistence.xml
    └── test
        ├── java
        │   └── com
        │       └── company
        │           └── project
        │               └── domain
        │                   ├── DbUnitDataLoader.java
        │                   └── UserTest.java
        └── resources
            └── user.db.xml

16 directories, 6 files

答案 1 :(得分:3)

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

答案 2 :(得分:1)

在这里,您使用了快速入门原型,即样本,更多信息here。 如果您想要Java EE标准布局,请使用maven-archetype-j2ee-simple原型:

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