【问题标题】:Maven: add resource from jar to WEB-INF during buildMaven:在构建期间将资源从 jar 添加到 WEB-INF
【发布时间】:2013-09-02 05:46:50
【问题描述】:

我想从依赖 jar 添加资源,它位于 myjar.jar:META_INF/public-resource/myresource.sk 到我的 webapp/WEB-INF/myfolder 在 mvn 包目标期间。有没有人可以提供建议,如何做到这一点?

【问题讨论】:

  • maven仓库中是否安装了myjar?
  • 是的,它已经安装在那里

标签: maven-3


【解决方案1】:

如果 myjar 在 mvn 存储库中,应该是这样的,就像

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                       <artifactItems>
                         <artifactItem>
                            <groupId>mygroupid</groupId>
                            <artifactId>myjar</artifactId>
                            <outputDirectory>src/main/webapp/WEB-INF/myfolder</outputDirectory>
                            <includes>META_INF/public-resource/myresource.sk</includes>
                          </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
 </build>

【讨论】:

  • 避免解压到src文件夹。 target 中的专用目录(如 ${outputDirectory}/sk-resource)更合适。然后将该输出目录添加为 WAR 资源的一部分,例如使用 maven-build-helper 插件
  • @AdrianShum 同意了。 Src 文件夹由问题中的 OP 定义。
  • @eis,谢谢!好主意,但是在解压缩我的目标资源之前正在执行 build-helper-maven-plugin 的构建时间。逆序怎么办?
  • @MihailZheludev 您实际上应该在 打包阶段之前执行插件,而不是在打包阶段(您在问题上提出的)。因此,例如将解包绑定到编译阶段,而不是打包阶段。在实践中,在上述配置中将相位设置为compile
  • @eis,很遗憾不能用 maven-dependency-plugin + build-helper-maven-plugin 做到这一点,但用 maven-dependency- 实现插件 + maven-war-plugin.
猜你喜欢
  • 2011-05-07
  • 2011-07-22
  • 2014-02-07
  • 1970-01-01
  • 2012-04-01
  • 2011-02-04
  • 2013-05-14
  • 1970-01-01
相关资源
最近更新 更多