Questo è più di condivisione della conoscenza piuttosto che fare una domanda. Ho pensato che questo piccolo frammento di Ant potrebbe essere utile a qualcuno.Come creare un file jaxb.index al volo usando Ant (o Maven)
<target name="create-jaxb-index" depends="compile">
<!-- Create a suitable jaxb.index file on the fly to remove the need for an ObjectFactory
jaxb.index is a simple list of the domain objects without package or extension, e.g.
org.example.Domain.java -> Domain
-->
<fileset id="domain-sources" dir="${src}">
<include name="org/example/*.java"/>
</fileset>
<pathconvert property="domain-list" refid="domain-sources" pathsep="${line.separator}">
<chainedmapper>
<flattenmapper/>
<globmapper from="*.java" to="*" casesensitive="false"/>
</chainedmapper>
</pathconvert>
<echo file="${target}/classes/org/example/jaxb.index" message="${domain-list}"/>
</target>
OK, OK in modo da non andare fino in fondo e memorizzare tutte i nomi dei pacchetti in modo che possa ricostruire la struttura file appropriato, ma è abbastanza buono per iniziare.
Spero che aiuti.
Inoltre, si può solo inserire questo piccolo frammento (meno l'elemento di destinazione) in un Maven costruire in questo modo:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<!-- Create a suitable jaxb.index file on the fly to remove the need for an ObjectFactory
jaxb.index is a simple list of the domain objects without package or extension, e.g.
org.example.Domain.java -> Domain
-->
<fileset id="domain-sources" dir="${build.sourceDirectory}">
<include name="org/example/domain/*.java"/>
</fileset>
<pathconvert property="domain-list" refid="domain-sources" pathsep="${line.separator}">
<chainedmapper>
<flattenmapper/>
<globmapper from="*.java" to="*" casesensitive="false"/>
</chainedmapper>
</pathconvert>
<echo file="${build.outputDirectory}/org/example/domain/jaxb.index" message="${domain-list}"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Grazie, questo è utile! Se esci da un capello dall'ambito previsto di un quadro, allora entri in un inferno di stranezze e hack. A volte mi sento come se fossi stanco di Java, Maven, Groovy, ecc. – boumbh
@boumbh Felice di aiutare. Un modo per ridurre la travolgente complessità dello sviluppo web è provare altre lingue. –
Se solo avessi una scelta ^^. Prendo atto della tendenza odierna ad usare le mazze per rompere le noci. JAXB è una mazza molto efficiente, mi spacca molto bene (senza connotazione negativa), ma a volte mi manca la facile gestione di uno strumento più semplice. La problematica sarebbe stata diversa usando un'altra lingua. Non necessariamente migliore. Come alcuni dicono: "Un cattivo operaio incolpa sempre i suoi strumenti: un buon operaio ha gli strumenti giusti". Se non riesco a scegliere i miei strumenti, questo mi rende un cattivo operaio. – boumbh