如何覆盖maven-war-plugin源目录

时间:2013-10-17 12:17:00

标签: java web-applications maven-2

我有旧的Web应用程序项目。然后我添加了pom.xml,并添加了maven-war-plugin。在旧项目中,源代码位于"Java Resources/src"目录中。

在我的maven-war插件中,我尝试覆盖这样的默认源代码,但不能正常工作。

在编译期间我看到: `

[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ webproj ---
[INFO] No sources to compile
[INFO]

`

我的pom.xml

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>exploded</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <webXml>WebContent\WEB-INF\web.xml</webXml>    
                <webappDirectory>WebContent</webappDirectory>
                <source>${project.basedir}\src</source>         
                <target>${maven.compiler.target}</target>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>

3 个答案:

答案 0 :(得分:1)

Maven-war-plugin使用项目源文件夹,覆盖你必须放在你的pom中的位置,如下所示:

<build>

    <sourceDirectory>/Java Resources/src</sourceDirectory>
    <plugins>
        ...
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>${version.build-helper-maven-plugin}</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>social/src/main/java</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        ...
    </plugins>
<build>

答案 1 :(得分:1)

如果您打算迁移到Maven,我建议您按照Maven Standard Directory Layout进行操作。因此,您应该将源文件移动到src/main/java,将.properties文件等静态资源移动到src/main/resources,将CSS和JavaScript文件等webapp资源移动到src/main/webapp

答案 2 :(得分:0)

您可以在warSourceDirectory配置中指定maven-war-plugin

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <warSourceDirectory>old/project/source</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>