我正在尝试将一些groovy(gradle)代码转换为maven。在可能的情况下,我们尝试使用现成的插件而不是自定义插件。
我们想使用maven程序集插件来组合我们将用于部署的tar文件。目录结构对于我们的部署工具很重要,我似乎正在反对让maven让它做我想做的事情。
底部代码段的关键问题是jar最终位于tar文件的target
目录中。我的问题是:这可以避免吗?或者我应该减少损失并编写一个简单的自定义插件来执行此操作?
(可能我将2和2放在一起得到5,但它似乎与这个错误相关here)
目录结构(运行构建后)
.
└── project1
├── config
│ └── foo.config
├── pom.xml
├── src
│ └── main
│ ├── assembly
│ │ └── assembly.xml
│ └── java
│ └── com
│ └── foo
│ └── bar
│ └── App.java
└── target
├── archive-tmp
├── classes
│ └── App.class
├── maven-archiver
│ └── pom.properties
├── my-static-jar-name-bundle.tar
└── my-static-jar-name.jar
装配文件
<assembly>
<id>bundle</id>
<formats>
<format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${basedir}</directory>
<outputDirectory>/spooge</outputDirectory>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/config</directory>
<outputDirectory>appconfig</outputDirectory>
<includes>
<include>**/*.config</include>
</includes>
</fileSet>
</fileSets>
</assembly>
构建完成后tar文件的内容(注意jar在'target'子文件夹中)
tar xvf project1/target/my-static-jar-name-bundle.tar
x spooge/target/my-static-jar-name.jar
x appconfig/foo.config
答案 0 :(得分:1)
尝试更改文件集,如下所示:
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/spooge</outputDirectory>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>
当前配置的方式,程序集插件正在project1
整个目录中搜索任何jar文件。它找到的唯一一个是target
目录,所以Maven很高兴将它包含在tar中。我建议使用project1/target
作为起点,所以我认为你会得到你想要的结果。