2009-02-06 12 views
5

Maven 2 utiliza un diseño estándar directorio de proyectos, documentado aquí:¿Cuáles son algunas convenciones de directorio adicionales para proyectos de Maven?

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

Lo que me pregunto es: ¿existen convenciones recomendadas para otros proyectos, además de la biblioteca llano-vainilla Java, Java EE y aplicación web proyectos? Específicamente, dónde colocar archivos ant, iniciar scripts, archivos de configuración, aplicaciones de muestra, etc.

Además, ¿cuál es la convención para colocar archivos fuera del árbol de directorios/src? Por ejemplo, ¿es común colocar documentación bajo doc/(como hermano de src)?

¿Hay una página donde se compilan estas convenciones? De lo contrario, ¿pueden otros lectores proporcionar ejemplos de sus propios proyectos?

Respuesta

1

no creo que hay una disposición oficial para aplicaciones de escritorio, pero esto es el diseño que utilizamos para nuestro.

  • src/main/config - Archivos de configuración, copiados y filtrados a $ {project.build.directory}/config.
  • src/main/scripts - sh, bat, README y otros archivos de texto sin formato que se copian y filtran a $ {project.build.directory}.
  • src/main/bin - Archivos binarios que son no filtrados y copiados a $ {project.build.directory}.
  • src/main/build - Cualquier scripts adicionales, archivos ant o recursos utilizados por el proceso de compilación pero no incluidos en la aplicación.
  • src/main/assembly - Descriptor de ensamblaje para crear el ensamblaje de la aplicación.
  • Copia las dependencias de $ {project.build.directory}/lib utilizando el complemento maven-dependency.
  • Puntos de bonificación si utiliza un descriptor de conjunto compartido jar que incluye los directorios config y lib junto con los tipos de archivos estándar para compartir con todos sus proyectos. Un buen conjunto de tipos de archivos predeterminados para incluir es .sh, .bat y .exe con permisos ejecutables; .jar, .zip, .txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg con permisos estándar.
  • Agregue el directorio config y lib/prefix al classpath usando el plugin maven-jar para hacer un jar ejecutable.
  • Agregue un perfil de instalador que cree un ensamblaje de su aplicación utilizando el complemento maven-assembly y su descriptor de ensamblaje. Este ensamblaje puede ser consumido por un proyecto de instalador separado si es necesario.
  • Evite poner cualquier otra cosa a nivel src/level. En su lugar, coloque la documentación dentro del directorio src/site/(por ejemplo, src/site/sphinx) o src/doc si realmente lo necesita.
  • Ponga toda la configuración anterior en un pom principal/corporativo para compartir con todos sus proyectos. Simplemente haga referencia a los complementos maven-dependency, maven-resources, maven-jar y maven-assembly en su proyecto para compilar una aplicación completa casi sin configuración (no olvide configurar la clase principal para el plugin maven-jar) .
2

La carpeta principal en la que coloco archivos de configuración extra se encuentra en src/main/java/resources. Por lo general, creé subdirectorios allí. Las pruebas pueden tener sus propios archivos de configuración src/test/resources.

Puede usar directivas en la sección de compilación de pom.xml para especificar directorios de recursos adicionales y dónde copiar archivos en lugares específicos en el directorio de destino. Por lo general, surge una convención para el idioma o el marco que está tratando de usar. En cuyo caso el desorden puede estar oculto en un pom.xml padres

Ver http://maven.apache.org/pom.html#Resources

+4

Tenga en cuenta que esos directorios de recursos suelen ser manipulados por maven. Puede que este no sea el comportamiento deseado para los archivos de propiedades configurables por el usuario o los scripts de inicio. – Kevin

Cuestiones relacionadas