[java/apache-ant] build.xml problematiek

Pagina: 1
Acties:

  • FvH
  • Registratie: Oktober 2001
  • Laatst online: 09-04 15:06

FvH

Aan het typen...

Topicstarter
Ik heb een java-project wat voorheen altijd mbv van make werd gecompileerd op een HP-UX machine. Deze makefile maakt gebruik van de SUN JWSDP 1.5. In de makefile staat dit:

$(JWSDP_HOME)/jaxb/bin/xjc.sh -d gensrc -p myserver.xml myserver.xsd

Dit resulteert in enkele files in de gensrc directory.

Mijn probleem is nu, dat als ik dit op de prompt aanroep en vervolgens met de Ant build.xml file de handel laat compileren het werkt. Ik wil echter dat ant die eerste stap (net als in de makefile) al doet. Zodat men gewoon ant kan aanroepen en dat alles braaf compileert.

Ik heb zitten zoeken, maar ik kom er niet uit. Iemand ervaring met dit soort dingen?

What are clouds made of? Linux servers mostly!


Verwijderd

Ja en die zijn heel makkelijk te vinden op de ant website :)
kijk maar eens tussen de verschillende taken...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Wat is je probleem?
1) je wilt dat automatisch een bepaalde taak uitgevoerd wordt als de gebruiker niet een specifieke taak uitgevoerd word?
2) je wilt dat automatisch altijd 1 taak wordt uitgevoerd wordt, voordat een specifieke, door de gebruiker opgegeven, taak uitgevoerd wordt?
3) je wilt een bepaald commando aanroepen?

Voor 1 kan je een default target opgeven in je build.xml
Voor 2 kan je een depends gebruiken bij targets.
Voor 3 kan je bv kijken naar de exec.

Je moet je vraag dus iets helderder stellen want ik snap niet precies wat je wilt.

[ Voor 20% gewijzigd door Alarmnummer op 20-07-2005 12:40 ]


  • FvH
  • Registratie: Oktober 2001
  • Laatst online: 09-04 15:06

FvH

Aan het typen...

Topicstarter
@Alarmnummer: ik wil geval 3.

Ik heb exec geprobeerd maar ik krijg meldingen dat het classpath etc. niet ok zou zijn. Dit is echter gewoon in /etc/profile geset. Net als java_home en jaxb_home. Ik zal nogmaals checken op de ant site of ik wellicht syntaxtisch iets fout doe. Anders post ik mijn hele build.xml hier zo.

What are clouds made of? Linux servers mostly!


  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 13:36
classpath (en eventuele andere paths of home's e.d.) moet je natuurlijk ook in je build file opgeven. Dit kan via "path" of "property".

If the world wouldn't suck, we'd all fall off


  • FvH
  • Registratie: Oktober 2001
  • Laatst online: 09-04 15:06

FvH

Aan het typen...

Topicstarter
Ik heb uiteindelijk mijn classpath definitie in de environment variabele aangepast. Ik had dir . (current dir) vooraan staan. Ik heb hem helemaal naar achteren verplaatst, waardoor het nu

CLASSPATH=/home/frank/src/testproject:/usr/java:/usr/java/bin:/usr/java/lib:.

is geworden ipv de . helemaal vooraan.

Don't ask, maar het werkt nu. :S

What are clouds made of? Linux servers mostly!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Binnen ant heb je ook gewoon een tag om je xml martshallers en unmarshallers te genereren. Een voorbeeltje uit en wat ouder project van mij:

code:
1
2
3
4
5
6
7
8
9
10
11
12
   <target name="jaxb_generate_java_source" depends="-init">
      <mkdir dir="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/project.xsd" binding="${src.jaxb.dir}/housedatabase/project.xjb" package="nl.fundament.communitymessaging.housedatabase.project" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/city.xsd" binding="${src.jaxb.dir}/housedatabase/city.xjb" package="nl.fundament.communitymessaging.housedatabase.city" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/province.xsd" binding="${src.jaxb.dir}/housedatabase/province.xjb" package="nl.fundament.communitymessaging.housedatabase.province" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/country.xsd" binding="${src.jaxb.dir}/housedatabase/country.xjb" package="nl.fundament.communitymessaging.housedatabase.country" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/housetype.xsd" binding="${src.jaxb.dir}/housedatabase/housetype.xjb" package="nl.fundament.communitymessaging.housedatabase.housetype" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/housemodel.xsd" binding="${src.jaxb.dir}/housedatabase/housemodel.xjb" package="nl.fundament.communitymessaging.housedatabase.housemodel" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/housedatabase/house.xsd" binding="${src.jaxb.dir}/housedatabase/house.xjb" package="nl.fundament.communitymessaging.housedatabase.house" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/user/contactregistered.xsd" binding="${src.jaxb.dir}/user/contactregistered.xjb" package="nl.fundament.communitymessaging.user.userinfo" target="${generated.jaxb.dir}"/>
      <xjc schema="${src.jaxb.dir}/user/contactinfo.xsd" binding="${src.jaxb.dir}/user/contactinfo.xjb" package="nl.fundament.communitymessaging.user.registration" target="${generated.jaxb.dir}"/>
   </target>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1