2010-10-28 23 views
8

Soy nuevo en Maven y he estado leyendo todos los tutoriales de la mañana (herramienta increíble).Maven estructura de directorios

Este nuevo proyecto de Java que comencé a buscar sin embargo no usa la estructura de directorios predeterminada. En lugar de src/main/java para las fuentes, usa algo como src/org/myapp.

Cuando ejecuto mvn package en el proyecto (donde se encuentra pom.xml) recibo un mensaje que dice que no se han compilado fuentes porque no puede encontrarlas (la ruta de origen es diferente).

¿Existe alguna manera de especificar su propia ruta de fuentes en Maven?

Respuesta

10

Añadir sourceDirectory a la etiqueta build en el archivo POM.

<build> 
    ... 
<sourceDirectory>src</sourceDirectory> 
    ... 
</build> 

Here es la sección relevante en los documentos de maven.

+0

¿Pero está creando un nuevo proyecto del menú eclipse y lo está utilizando para maven una buena práctica? – zengr

+0

No creo que sea un proyecto nuevo. Parece que está intentando migrar un proyecto existente (con una estructura de directorio diferente) a maven. Pero podría estar equivocado ... – dogbane

+0

@zengr, no estoy usando Eclipse –

1

¿Cómo se creó el proyecto? La idea de crear un nuevo proyecto de maven es: mvn archetype:create y luego seguir las instrucciones.

Leer this para más detalles

actualización para extender por respuesta basada en la URL:

mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] 
2

En teoría, puede utilizar una estructura de directorios no estándar para su proyecto Maven. En la práctica, es posible que varios complementos Maven e integraciones IDE no funcionen correctamente. Así que le aconsejo que reorganice la estructura de su directorio de proyectos para que sea lo que Maven espera ... antes de obtener un montón de historial de control de versiones y otras cosas que harán que la reorganización sea más dolorosa.

+3

No estoy de acuerdo. Hay formas estándar para que un complemento de buen comportamiento descubra cuál es la estructura del directorio. Un complemento que use 'model.getBuild(). GetSourceDirectory()' siempre encontrará el directorio de origen, sin importar dónde se encuentre. Y un complemento que solo comprueba el 'nuevo archivo (" src/main/java ")' probablemente sea un plugin bastante malo en otros aspectos, también. –

+0

Pero también estoy de acuerdo en que es una buena idea usar la estructura estándar si puede elegir. –

+0

@seanizer: el problema es que es poco probable que los complementos y otras cosas se prueben tan bien con los POM que usan estructuras de directorio no estándar. Y probablemente recibas una respuesta entusiasta de los desarrolladores de Maven ante cualquier error que encuentres. –

Cuestiones relacionadas