Attualmente sono alle prese con Maven: Ho un progetto complesso costituito da diversi moduli nidificati e per alcuni di questi moduli, ho configurazioni simili nelle POM.Come condividere i frammenti POM tra diverse POM
Mi piacerebbe renderlo pulito. In realtà, vorrei definire una configurazione comune "runnable-jar" e attivarla in alcuni moduli.
Ecco il frammento POM vorrei condividere tra diversi progetti:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- Use a custom descriptor, with suffix "bin" -->
<descriptors>
<descriptor>src/main/assembly/runnable-jar-assembly.xml</descriptor>
</descriptors>
<!-- Add main class to manifest -->
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
<!-- Add build of this package to lifecycle -->
<executions>
<execution>
<id>make-runnable-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
in alcuni dei POMS, vorrei essere in grado di fare qualcosa di simile:
<!-- Set the main class -->
<properties>
<mainClass>my.main.Class</mainClass>
</properties>
<!-- Activate runnable jar build -->
<import>src/main/pom/runnable-jar-pom.xml</import>
I hanno cercato un mezzo per importare alcuni frammenti XML in un POM o per definire un'intera macro di nodeset XML.
Per quello che ho trovato, la soluzione più vicina sarebbe quella di definire un profilo nel POM padre e attivarlo in alcuni sottomoduli testando la presenza di un file. See this related question. Ma sto affrontando il problema della proprietà {basedir}
non impostata correttamente ereditata/impostata.
Trovo molto sorprendente avere bisogno di un trucco per fare qualcosa di così semplice (= solito). Come lo maneggi di solito in Maven?
Bello. Non ero a conoscenza di questa possibilità. –