Convertir el archivo de compilación de Ant a Makefile

Tengo el archivo de compilación de Ant que se utiliza en Docbook. Ahora voy a convertir ese archivo de compilación Ant a un Makefile que utiliza el procesador Xsltproc. No estoy particularmente familiarizado con Makefile o Ant. Así que por favor ayúdame a convertirlo. ¿Hay algún recurso que deba seguir?

Aquí quiero, 1. Copiar la estructura de la carpeta y su contenido en otra carpeta. 2. configurar las propiedades del sistema java 3. configurar classpath

En el script ant, tiene un código como este,







  
         
         
           
        
                 
            
      
    

Quiero convertir por encima de 2 códigos en make. Gracias..!!

1
Gracias ... pero necesito convertir el script ant en un Makefile. No para maven. Qué shouls hago por esa parte de conversión. Creo que tengo que hacer eso en mano. si puedes por favor dime
agregado el autor harsh, fuente
Para Docbook, considere usar Docbkx Maven Plugin, ya que integra toda la cadena de herramientas Docbook (analizador, dtd, hojas de estilo ...) en una configuración de construcción muy simple: code.google.com/p/docbkx-tools
agregado el autor Emmanuel Bourg, fuente

1 Respuestas

Make y ANT son tecnologías muy diferentes. Su requerimiento sería difícil de cumplir para todos, excepto los casos de uso más simples.

Estos son algunos de los desafíos técnicos:

  • ANT no es Make. En la superficie parece similar, pero por debajo funciona de manera muy diferente.
  • Sorprendentemente, no es muy multiplataforma. Los diferentes sabores tienen diferencias sutiles que podrían romper un convertidor ANT a Makefile.
  • ANT está diseñado para admitir programas Java, esto significa que tiene una sintaxis rica para administrar cosas desagradables como los classpaths de Java. Una vez más difícil de traducir.

Actualizar

La siguiente ANT tarea java

  
         
         
           
        
                 
            
      
 

se puede traducir a la siguiente línea de comandos java de Unix.

java \
   -DhtmlDir=$PUT_OUTPUT_DIR_HERE \
   -DhtmlExtension=$PUT_EXT_HERE \
   -cp $CLASSPATH:$PATH_TO_XERCES_JAR:/usr/share/xml-commons/lib/xml-apis.jar \
   com.nexwave.nquindexer.IndexerMain
4
agregado
Gracias. Sé que es difícil ... pero tengo que hacer eso para un proyecto. Tengo 4 archivos jar y tengo que agregarlos al classpath. Si puede darme un código para agregar esos archivos jar a classpath en un makefile.
agregado el autor harsh, fuente
@ Mark: Muchas gracias ... Ese es el código que estaba buscando. He terminado de copiar y tengo que terminar solo la tarea java. Configuré mi tarea java como abajo java \ -DhtmlDir = docsrc \ -DindexerLanguage = en \ -DhtmlExtension = html \ -DdoStem = true \ -cp $ CLASSPATH: $ (DOCBOOK_STYLES) /webhelpindexer.jar: $ (DOCBOOK_ST & zpc)/lucene-analyse & zwnj; rs-3.0.0.jar: $ (DOCBO & zwnj; OK_STYLES)/lucene-co & zwnj; re-3.0.0.jar \ com.nexwave.nquindexer.IndexerMain \ Pero aparece el error "Exception en el hilo "main" java.lang.NoClassDefFoundError: com/nexwave/nquindexer/IndexerMain "
agregado el autor harsh, fuente
Cuando configuro solo webhelpindexer.jar en la ruta de clase, no da ese error. El error ocurrió solo cuando se agregaron varios archivos jar. Por cierto, ¿qué querías decir con la variable $ CLASSPATH? ¿Necesito agregar alguna ruta a esa variable? Por favor, dime, ya que soy muy nuevo en esto.
agregado el autor harsh, fuente
@harsh Sorry no puede escribir la lógica de Makefile para usted, pero sí proporcioné un ejemplo de cómo traducir la tarea java ANT a una línea de comandos de Unix.
agregado el autor Mark O'Connor, fuente
No es raro que los administradores de Unix preconfiguren una variable CLASSPATH común, que contiene archivos jar comunes. Personalmente soy alérgico a la idea, ya que creo que cada programa Java debería administrar su propia ruta de clase.
agregado el autor Mark O'Connor, fuente