2012-07-24 7 views
14

Im tratando de utilizar Maven para construir una aplicación independiente¿Cómo se crea un ensamblaje de maven que incluye scripts de shell y archivos de propiedades que no están en el contenedor?

Usando el plugin conjunto descrito en How do you create a standalone application with dependencies intact using Maven?

Esto crea postal widget de distribución que contiene

widget-1.0 
widget-1.0/lib/widget.jar 
widget-1.0/lib/3rdpartyjar1.jar 
widget-1.0/lib/3rdpartyjar2.jar 

...

pero en mi árbol src tengo:

src/main/bin/widget.sh 

y ésto no crea en el zip distribución final, me gustaría ir aquí

widget-1.0/widget.sh 

También en mi árbol src tengo un archivo de propiedades en

src/main/properties/widget.properties 

que en la actualidad hacen su camino en

widget-1.0/lib/widget.jar 

sino porque yo quiero que sea editable quiero que sea en

widget-1.0/widget.properties 

¿Es posible hacer esto dentro de maven?

EDITAR Utilizando la información en el blog obtuve de trabajo de la siguiente manera:

  1. carpeta bin cambiado el nombre a los scripts carpeta porque este es el nombre estándar Maven
  2. widget.properties movido en carpeta de scripts
  3. Modifed mi assembly.xml para contener un conjunto de archivos

Aquí está el nuevo xml

<?xml version="1.0" encoding="UTF-8"?> 
<assembly 
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> 
    <id>distribution</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <dependencySets> 
     <dependencySet> 
      <scope>runtime</scope> 
      <outputDirectory>lib</outputDirectory> 
      <unpack>false</unpack> 
     </dependencySet> 
    </dependencySets> 
    <fileSets> 
     <fileSet> 
      <directory>${project.build.scriptSourceDirectory}</directory> 
      <outputDirectory></outputDirectory> 
      <includes> 
       <include>widget.sh</include> 
       <include>widget.properties</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

punto Sin embargo menor, pero no puede encontrar una lista de variables de la carpeta de Maven estándar en cualquier lugar, es decir, es que hay un equivalente a $ {} project.build.scriptSourceDirectory de las propiedades de la carpeta

Respuesta

15

me pareció ser this blog post un buen tutorial sobre cómo hacer esto.

Además, creo que el nombre de la carpeta en la que coloca sus archivos es relevante. Obviamente, Maven hace cosas diferentes con los archivos en src/main/java que con los archivos en src/main/resources. No estoy 100% seguro, pero el nombre de esta carpeta puede significar la diferencia entre un archivo que termina dentro del contenedor o no.

Here es una lista de propiedades de nombre de directorio de Maven.

+0

gracias parece un gran blog, lo revisaré y veré si resuelve mi problema. En realidad, mi pregunta era incorrecta. Guardo widget.sh en una carpeta bin, pregunta modificada para inidicar esto. –

+0

@PaulTaylor He editado mi respuesta para reflejar su edición en la pregunta. Buena suerte :)! – jqno

+0

thx @jqno resuelve mi problema –

Cuestiones relacionadas