我的src/main/java/com/pac/report.pl
中有一个perl文件,我想将其作为jar文件中类的一部分打包。
使用maven maven-jar-plugin
include指令,我在下面尝试了以及我从网上删除的各种其他建议,但是不会将perl文件作为我的类的一部分复制到jar文件中。有谁知道我做错了什么。
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<includes>
<include>**/*</include>
</includes>
</configuration>
</plugin>
修改
另请允许我指出,由于遗留呼叫和相关原因,我不希望将文件放在资源目录中。
答案 0 :(得分:3)
这是因为打包到 jar 中的类不是来自 src ,而是来自目标(特别是/target/classes
),而且完全是编译器忽略你的非java文件。
尝试将文件放在src/main/resources/com/pac/report.pl
中,然后将其打包到jar中(相对路径为/com/pac/report.pl
),因为这是资源插件查找要添加到的其他文件的默认位置jar插件运行之前的目标。
编辑 - 或者,如果您不希望/不能像maven所期望的那样执行此操作,您可以手动bind an execution of the resources plugin到生命周期来获取文件并将其复制到目标。像这样的东西:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>compile</phase> <!-- or later -->
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<!-- path to your *.pl file here -->
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>