簡體   English   中英

使maven在構建jar中復制其他文件(不是資源,而是任何包中的任何文件)?

[英]Making maven copy additional files inside the build jar (not resources but any file inside any package)?

我有一個帶有一些ruby文件( *.rb )的org.myapp.mypackage包,我需要將它們與java類文件一起包含在同一個包中生成的構建jar

我怎么告訴我的朋友Maven這樣做?

注意:不,我無法復制到其他任何地方,但感謝您的建議。 :)

您可以修改POM的<build>位的resources部分:

<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)中,它們應該正確捆綁到Jar中。 要把* .rb文件放在src / main / resources文件夾下創建相同的目錄結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM