我有一个包含一些 ruby 文件的包org.myapp.mypackage
( *.rb
),我需要将它们与 java 类文件一起包含在同一个包的生成的构建 jar 中。
我如何告诉我的朋友 Maven 这样做?
注意:不,我无法复制到其他任何地方,但感谢您的建议。 :)
您可以修改 POM <build>
位的资源部分:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/java</directory>
<includes>
<include>*.rb</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
或者,另一个答案(在src/main/resources
中创建相同的包结构)也将起作用。
不确定我是否正确理解了这个问题,但是如果您的 Ruby 文件是由 maven 和声明为依赖项,您可以使用 shade 插件来包含结果 JAR 文件中的内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>org.myapp.mypackage:mypackage</include>
</includes>
</artifactSet>
<filters>
<filter>
<artifact>org.myapp.mypackage:mypackage</artifact>
<includes>
<include>org/my/package/*.rb</include>
</includes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
将它们放在正确的目录中(一般是 src/main/resources)和它们应正确捆绑到罐子中。为了放置 *.rb 文件,请在 src/main/resources 文件夹下创建相同的目录结构。