我设置了一个解析任务(阶段run
上的目标prepare-package
),用于创建文件并将其保存在/target/foo.bar
中。如何将其添加到由maven创建的工件中(取决于模块,它可能是jar
或war
文件)?
我已经尝试过资源,使用builder-helper插件和jar插件 - 没有运气:
<resources>
<resource>
<directory>target</directory>
<includes>
<include>**/foo.bar</include>
</includes>
</resource>
</resources>
这似乎无能为力。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/foo.bar</file>
<type>bar</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
根据调试输出,这似乎在回购中安装了额外的东西,但是没有将foo.bar
添加到人工制品中。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<includes>
<include>../foo.bar</include>
</includes>
</configuration>
</plugin>
也没有可观察到的影响。 :(
(我认为this可能适用于war
文件,但如果可能的话,我更喜欢一种方法来处理这两种工件类型 - 而且我真的需要这样做才能工作jar
也是......)
有没有办法做我想做的事情?
(我不想首先在src / main / resources中保存我的文件;我认为打包过程会在放置到目录后从构建目录中选择文件,但我想我误解了一些东西......)< / p>
答案 0 :(得分:0)
我将文件保存到project.build.directory
。将其更改为project.build.outputDirectory
表示jar
插件正在拾取它,而不需要任何其他插件。不幸的是,这并没有排除war
问题... :(
答案 1 :(得分:0)
我遇到了类似的问题并将生成的工件存储在
中target/${project.name}-${project.version}/foo.war
更确切地说,我使用ant target
从目录创建了战争<war warfile="target/${project.name}-${project.version}/foo.war" basedir="somedir" />
然后将它正确地添加到周围的耳朵中。