1

我有一个 perl 文件,src/main/java/com/pac/report.pl我想将其打包为 jar 文件中的类的一部分。

使用 mavenmaven-jar-plugin包含指令,我在下面尝试过以及我从网上提取的各种其他建议,但没有将 perl 文件复制为 jar 文件中我的类的一部分。有谁知道我做错了什么。

<plugin>
 <artifactId>maven-jar-plugin</artifactId>
 <version>2.4</version>
  <configuration>
    <includes>
     <include>**/*</include>
     </includes>
  </configuration>
 </plugin>

编辑

另外让我指出,由于遗留调用和依赖原因,我不想将文件放在资源目录中。

4

1 回答 1

3

那是因为打包到你的jar中的类不是从src获取的,而是从 target (特别是/target/classes)获取的,编译器完全忽略了你的非 java 文件。

尝试将文件放入src/main/resources/com/pac/report.pl其中,它应该被打包到 jar 中(相对路径为/com/pac/report.pl),因为这是资源插件在 jar 插件运行之前查找要添加到 /target 的其他文件的默认位置。

编辑- 或者,如果您不想/不能按照 maven 期望的方式执行此操作,您可以手动将资源插件的执行绑定到生命周期以获取您的文件并将其复制到目标。像这样的东西:

<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>
于 2013-02-13T14:04:18.660 回答