2010-08-17 38 views
5

Leo this article en la página web del proyecto maven que enumera los diferentes diseños de directorio (como: src/main/resources que es para recursos de aplicación/biblioteca).Maven no genera el archivo "persistence.xml"

El problema es que cuando ejecuto el comando siguiente (found here): directorio/recursos/META-INF

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

el src/main no se crea. Es importante para mí porque me gustaría llegar al "persistence.xml" que se encuentra en ese directorio.

¿Debo añadir una opción en el comando mvn? ¿Cómo puedo generar automáticamente el "src/main/resources" que contiene el archivo "META-INF/persistence.xml"?

Gracias, Saludos

Respuesta

7

El problema es que cuando ejecuto el comando siguiente (...) el src/main/resources/META-INF directorio no es creado. Es importante para mí porque me gustaría llegar al "persistence.xml" que se encuentra en ese directorio.

El inicio rápido arquetipo Maven NO crea src/main/resources ni src/test/resources. Hay varias explicaciones:

  • Como se ha indicado por su nombre, este arquetipo permite a inicio rápido un proyecto, le toca a usted para darle forma.
  • ¿Por qué este arquetipo debería crear src/main/resources y no, por ejemplo, src/main/assembly?
  • Crear directorios vacíos en realidad no fue posible durante un tiempo prolongado (ver ARCHETYPE-57).

En otras palabras, simplemente agregue src/main/resources/META-INF/persistence.xml manualmente si usa este arquetipo.

¿Debo añadir una opción en el comando mvn? ¿Cómo puedo generar automáticamente el "src/main/resources" que contiene el archivo "META-INF/persistence.xml"?

No se puede con este arquetipo, y realmente no entiendo por qué este es un problema tan grande.

Hay un arquetipo de la APP sin embargo:

 
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 

que crea el siguiente proyecto de APP de arranque:

 
$ 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 
+2

@downvoter ¿Le importa explicar por qué esta respuesta merece un voto a favor? ¿Puede por favor mostrarme qué parte de esta respuesta es incorrecta? –

1

Aquí utilizan el arquetipo de inicio rápido, que es la muestra, más informaciones here. Si desea un diseño estándar de Java EE que SHAUD utilice el maven-archetype-j2ee-simple arquetipo:

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

No sea demasiado dependiente de la experta en hacer las cosas para usted. Estos arquetipos están ahí para proporcionar plantillas básicas. Si no crean un archivo para usted, solo siga y créelo usted mismo.

Cuestiones relacionadas