Maven没有生成“persistence.xml”文件。

5

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

问题是当我运行以下命令(在此处找到)时:

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个回答

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 项目:
$ 树形结构 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

2
@downvoter 能否解释一下为什么这个答案应该被踩?你能否告诉我这个答案哪一部分是不正确的? - Pascal Thivent

4

不要过于依赖Maven为你完成所有事情。这些原型仅提供基本模板。如果它们没有为您创建文件,请自行创建。


1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接