Maven не генерирует файл "persistence.xml" - PullRequest
5 голосов
/ 18 августа 2010

Я прочитал эту статью на веб-странице проекта maven, в которой перечислены различные макеты каталогов (например: src / main / resources для ресурсов Application / Library).

Проблема в том, что когда я запускаю следующую команду ( найдена здесь ):

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

каталог src / main / resources / META-INF не создан. Это важно для меня, потому что я бы хотел найти файл «persistence.xml», который находится в этом каталоге.

Должен ли я добавить опцию в команду mvn? Как я могу автоматически создать файл "src / main / resources", содержащий файл "META-INF / persistence.xml"?

Спасибо, Привет

Ответы [ 3 ]

8 голосов
/ 18 августа 2010

Проблема в том, что при выполнении следующей команды (...) каталог src / main / resources / META-INF не создается. Это важно для меня, потому что я хотел бы найти файл «persistence.xml», который находится в этом каталоге.

Архетип быстрого запуска maven НЕ создает src/main/resources и src/test/resources. Есть несколько объяснений:

  • Как следует из названия, этот архетип позволяет быстро запускать проект, вы можете его сформировать.
  • Почему этот архетип должен создавать src/main/resources, а не, скажем, src/main/assembly?
  • Создание пустых каталогов долгое время было невозможно (см. ARCHETYPE-57 ).

Другими словами, просто добавьте src/main/resources/META-INF/persistence.xml вручную, если вы используете этот архетип.

Должен ли я добавить опцию в команду mvn? Как я могу автоматически создать файл "src / main / resources", содержащий файл "META-INF / persistence.xml"?

Вы не можете с этим архетипом - и я действительно не понимаю, почему это такая большая проблема.

Хотя существует архетип 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
3 голосов
/ 18 августа 2010

Не будь слишком зависим от того, что Мэйвен делает что-то для тебя.Эти архетипы предназначены только для предоставления базовых шаблонов.Если они не создают файл для вас, просто создайте его самостоятельно.

1 голос
/ 18 августа 2010

Здесь вы использовали быстрый образец архетипа, который является примером, больше информации здесь .Если вы хотите стандартную компоновку Java EE, вы должны использовать maven-archetype-j2ee-simple архетип:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-j2ee-simple -DinteractiveMode=false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...