处理遗留项目时,我需要从URL中的jar加载文本资源。 然后将文本资源过滤并包含在输出中;这些资源来自已发布的工件。
从资源插件我看到它只能提供一些目录;是否可以根据需要加载资源?
我想做这样的事情,但是在工作区中使用远程jar而不是oher项目:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
<resources>
<resource>
<directory>../<another project on the same workspace>/src/main/filtered-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
远程资源插件,如其中一个答案所示,不起作用,因为导入的捆绑包中的文件不会在目标中结束;我无法使用远程资源插件生成原始包(这是一个仍在使用的传统projetc,完全不受我的控制)。
答案 0 :(得分:1)
我认为Maven Remote Resources Plugin符合您的需求。
修改强>:
从插件的usage page获取的代码段。该XML片段将插件附加到generate-sources
阶段(如果它不符合您的需要,请选择另一个阶段),将下载apache-jar-resource-bundle
工件并将其内容解压缩到${project.build.directory}/maven-shared-archive-resources
。
为了获得更好的结果,建议使用同一插件的bundle
目标创建资源工件。
<!-- Turn this into a lifecycle -->
<plugin>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>process-remote-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<resourceBundle>org.apache:apache-jar-resource-bundle:1.0</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
编辑2:使用AntRun的替代解决方案
如果你的工件不适合Maven的需求而你需要更多自定义的东西,那么使用AntRun插件就可以得到它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>download-remote-resources</id>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<get src="URL of the resource" dest="${project.build.directory}" />
<unzip src="${project.build.directory}/filename.[jar|zip|war]" dest="${project.build.directory}/${project.build.finalName}" />
</target>
</configuration>
</execution>
</executions>
</plugin>