mtk*_*mtk 28 maven maven-assembly-plugin
我正在使用maven程序集插件生成一个.tar包含其他几个文件的文件,依赖的jar.所有文件都正确地复制到配置中的给定文件夹assembly.xml.
我想在最终的tar文件中包含原始项目jar,但目前还没有看到它.
我发布assembly:single目标时会收到以下消息:
[警告]不能包含项目工件:com.my.newpkg.project1:jar:0.0.3.0; 它没有关联的文件或目录.
在阅读了SO之后,似乎添加了以下配置pom.xml应该添加jar,但仍然没有得到预期的结果.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.my.newpkg.project1.MainClass</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
<formats>
<format>dir</format>
<format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
<fileMode>0755</fileMode>
</dependencySet>
</dependencySets>
Run Code Online (Sandbox Code Playgroud)
那么,配置还不正确吗?还是我错过了什么?
我们如何将当前项目jar添加到最终的tar中
Gee*_*nte 50
在<dependencySet>你可以这样排除当前项目罐子<useProjectArtifact>false</useProjectArtifact>,但它默认为true,所以它应该工作.
从警告中,我猜你忘了先做mvn package,所以目标目录中没有jar.
或者mvn package assembly:single在一个命令中执行.
或者,在你的pom中添加maven-assembly-plugin并将其绑定到'package'阶段,以便它自动触发mvn package:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>tar-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>etc/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24006 次 |
| 最近记录: |