如何将战争的罐子移动(或复制)到另一个战争的文件夹?

时间:2014-10-20 14:19:45

标签: java maven jar war maven-plugin

我有2个模块的maven prj:一个JAR和一个依赖于JAR的WAR。

在MAVEN INSTALL之后

我已经进入WAR了经典的WEB-INF / lib文件夹,其中包含所有jar依赖项(包括第一个模块的JAR)。

我需要将第一个模块的JAR移动到另一个文件夹,例如WEB-INF / resources。 如我所能?

我能够移动jar但只在目标范围内,WAR保持不变。 我使用了以下插件:

...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.9</version>
            <executions>
                <execution>
                    <id>copy-installed</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>groupId</groupId>
                                <artifactId>artifactId</artifactId>
                                <version>1.0</version>
                                <type>jar</type>
                                <overWrite>false</overWrite>
                                <outputDirectory>${project.build.directory}/.../WEB-INF/services</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                        <outputDirectory>${project.build.directory}/.../WEB-INF/services</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>    

2 个答案:

答案 0 :(得分:0)

也许这会有所帮助:

<project.warSourceDirectory>${basedir}/src/main/webapp</project.warSourceDirectory>
...

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>copy-installed</id>
            <phase>install</phase>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>groupId</groupId>
                        <artifactId>artifactId</artifactId>
                        <version>1.0</version>
                        <type>jar</type>
                        <overWrite>false</overWrite>
                        <outputDirectory>${project.warSourceDirectory}/WEB-INF/services</outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

答案 1 :(得分:0)

现在,我投降了。

我无法将此JAR从WEB-INF / lib移动到EAR的WEB-INF /服务。 我使用的解决方法是说MODULE1将其JAR复制到MODULE2的WEB-INF /服务中。因此,JAR将出现在sources文件夹的WEB-INF / services中,TARGET文件夹的WEB-INF / services中,最后出现在EAR的WEB-INF / services中。

我用过:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <outputDirectory>..MOSULE1/src/main/webbapp/WEB-INF/services</outputDirectory>
            </configuration>
        </plugin>
    </plugins>

进入MODULE1 pom。

我不得不放弃使module1独立的module2;(

我希望我能找到一个干净的解决方案..