2011-01-04 43 views
10

Seguí The Java Archive Tool pero no pude encontrar cómo excluir carpetas.Ejecutar comando jar excluir archivos

Por ejemplo, tengo los archivos bajo directorio local de trabajo:

workingcopy 
--src 
    --.svn 
    -- com 
--.svn 
--WebContent 

me gustaría recopilar y crear frasco sólo de las clases bajo src excluir todas las carpetas que comienzan con el directorio .svn. Quiero ejecutarlo desde cmd como jar -cf test.jar etc.

¿Cómo puedo hacerlo?

Respuesta

2

Esto podría ser una solución práctica para el problema: no será excluir el directorio de la subversión (directorios) sino que incluyen archivos única clase (suponiendo, que No archivos de clase puesto bajo el control de versiones):

jar -cf test.jar *.class 

mejora adicional: código separado de los archivos de clase. Usted no desea comprobar en archivos de clase (construir artefactos) de todos modos:

workingcopy 
--src 
    --.svn 
    -- com // only *.java files in here and below 
--.svn 
--WebContent 
--bin 
    --com // only *.class files in here and below 
+0

Tengo solo las clases de Java allí. ¿Puedo también compilarlo en clases mediante jar o cualquier otra línea de comando que no sea con ANT? – Dejell

+0

@Odelya - use 'javac' para compilar archivos fuente java y (opcionalmente)' jar' para crear bibliotecas. 'jar' no puede compilar y no * necesita * ant o maven, pero sobre todo, esto simplifica en gran medida el proceso de compilación (pero debe aprender/comprender las nociones básicas). maven simplifica aún más, pero maven es algo más difícil de entender. Y requiere conexión a internet (permanente). –

+0

@Anderas_D sí Trabajé con Maven pero no me gustó, ya que el plugin para eclipse causó mucho trabajo extra y no todo fue compilado. hasta que encuentre un buen complemento, no quiero volver a Maven y pom.xml. Sé cómo usar ANT pero fue fácil para mí ejecutarlo desde FinalBuilder sin y con un archivo externo para build.xml – Dejell

0

No parece que el programa jar por sí mismo podrá hacer esto. Tendrá que agregar otro tipo de script para lograr lo que está buscando.

Parece que puede estar usando Windows, así que supongo que podría escribir las piezas que faltan de esa manera.

Espero que esto ayude.

1

Esto se logra fácilmente (junto con muchas otras cosas) por herramientas de construcción como maven y ant y gradle

0

Como dijo por javamonkey79, I don' tthink puede hacerlo solo con la herramienta en sí jar. Lo que debe hacer es considerar ant, y es jar task.

1

Existe un concepto llamado Exportar en SVN. si usa eso obtendrá la estructura sin el repositorio .svn. Es ligeramente diferente del Check-Out.

Después de esto, debe poder hacer un comando jar normal desde ese directorio en lugar de la carpeta del repositorio.

18

Esto se puede hacer con un comando:

jar cf test.jar `find . -not -path "*/.svn/*" -not -type d` 

El problema con jar es que si se pasa de directorio que se añadirá de forma recursiva con todo contenido. Entonces, nuestro objetivo es pasar solo los archivos y solo aquellos que no tienen la subcadena '.svn' en la ruta.Para este propósito find comando se utiliza con 2 condiciones:

  1. -not -path "*/.svn*" filtra todos los archivos de SVN
  2. -not -type d filtra todos los directorios

Esto excluirá los directorios vacíos del frasco sin embargo.

+0

Esto ha reducido mi tiempo de construcción sustancialmente. Gracias. – SomeGuyOnAComputer

Cuestiones relacionadas