战争文件生成前的Maven复制文件夹

时间:2015-02-18 13:08:13

标签: java maven maven-resources-plugin

我有两个Git存储库。一个存储库是java服务(maven web项目),另一个存储库包含UI {HTML,JS,CSS}(非maven),在java服务库构建时我希望将最新的UI(master)包含到war文件中。我尝试了maven-resources-plugin

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <!-- here the phase you need -->
                        <phase>install</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/target/</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>/home/srinivas/AAA/bb/</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  

mvn install

它将资源复制到目标文件夹,但不将它们放在war文件中

2 个答案:

答案 0 :(得分:3)

您在执行中使用了错误的阶段,因为package阶段实际上是创建战争的阶段,因此您需要在较早的阶段执行,例如prepare-package

您一定要阅读Introduction to the Build Lifecycle以获得澄清。

此外,您不应该习惯通过maven-resources-plugin从文件系统中提取资源。这通常被认为是不好的做法,因为其他开发人员将无法重现您的构建。

使用存储库管理器来存储您的依赖项是这里的方法。阅读Why do I need a Repository Manager?即可开始使用。

答案 1 :(得分:0)

乍一看,改变:

<phase>install</phase>

<phase>prepare-package</phase>