Mam projekt poniższego formularzaPrzyspieszenie montaż Maven z wielu modułów
- pom.xml
- projectA
- pom.xml
- src/main/
- java
- startupScript
- projectB
- pom.xml
- src/main/
- java
- startupScript
- projectAssembly
- pom.xml
chcę projectAssembly
do wytworzenia tar.gz, które zawierają dwa foldery, jeden dla Projecta i jeden dla projectB, w w każdym folderze byłyby zależności projektu i biblioteka startupScript
.
W "naiwny" sposobem na to jest dodanie assembly.xml
plik do każdego projektu, plik, który z grubsza wygląda tak:
<assembly>
<formats>
<format>tar.gz</format>
</formats>
<baseDirectory>/${project.artifactId}</baseDirectory>
<fileSets>
<fileSet>
<directory>${basedir}/src/main/startupScripts</directory>
<outputDirectory>/startupScripts</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
następnie w projectAssembly
zależą <type>tar.gz</type>
zarówno projectA
i projectB
, i dodać plik zespół, który z grubsza wygląda
<assembly>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
</dependencySet>
</dependencySets>
</assembly>
To działa, jednak nie muszę pośredni tar.gz
projektów A
i B
, a ich produkcja, zwłaszcza jeśli mają wiele zależności, zajmuje dużo czasu.
Jak mogę poinformować mavena o bezpośrednim montażu tylko tar.gz z projectAssembly
bez marnowania czasu na pakowanie i rozpakowywanie pośrednich archiwów?
Potrzebujesz zależności w projekcie a i b tar.gz? Jeśli nie tylko usuń elementy dependencySets z deskryptora zespołu. – khmarbaise
@khmarbaise, ale jak by się pojawiły w ostatnim tar.gz stworzonym przez 'assemblyProject'? – mikebloch
Cześć! Którą wersję Maven używasz? – Jan