我有以下形式的项目
- pom.xml
- projectA
- pom.xml
- src/main/
- java
- startupScript
- projectB
- pom.xml
- src/main/
- java
- startupScript
- projectAssembly
- pom.xml
我想projectAssembly
生成一个 tar.gz,其中包含两个文件夹,一个用于 projectA,一个用于 projectB,在每个文件夹中,都会有项目的依赖项和startupScript
库。
这样做的“天真”方法是将assembly.xml
文件添加到每个项目中,该文件大致如下所示:
<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>
然后,在,中同时projectAssembly
依赖和, 并添加一个大致如下的程序集文件<type>tar.gz</type>
projectA
projectB
<assembly>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
</dependencySet>
</dependencySets>
</assembly>
这行得通,但是,我不需要中间tar.gz
项目A
和B
,并且生产它们,特别是如果它们有很多依赖项,需要很长时间。
我怎样才能告诉 maven 只直接组装 tar.gzprojectAssembly
而不浪费时间打包和解包中间档案?