更改Maven配置文件中的源目录

41

我想在特定的Maven配置文件中使用不同的源目录,但是当我尝试在配置文件中指定时,出现了以下错误:

Unrecognised tag: 'sourceDirectory' (position: START_TAG seen ...<build>\r\n\t\t\t\t<sourceDirectory>... )

在pom文件中的定义如下:

<profile>
    <id>development</id>
    <build>
        <sourceDirectory>${project.build.directory}/new-src</sourceDirectory>
        .
        . 
        .
    </build>
</profile>

我想做的是在编译之前,仅当此配置文件处于活动状态时处理源文件。我的处理将实时更改源文件,将更改后的源文件放入“new-src”目录中,并将该目录编译,就像它是通常的“src/main/java”一样。生命周期中的其他所有内容应该正常运行。如果这种方法有缺陷,是否有人可以指点我正确的方向?

2个回答

85
根据文档,您可以在配置文件中更改仅几个<build>参数,其中<sourceDirectory>不是其中之一。
我会将主要的<build>配置为从某个属性定义的路径(例如src.dir)获取源代码,并将此属性设置为src/main/java,然后在自定义配置文件中覆盖它。
<project>
    ...
    <properties>
        <src.dir>src/main/java</src.dir>
    </properties>
    <build>
        <sourceDirectory>${src.dir}</sourceDirectory>
        ...
    </build>
    <profiles>
        <profile>
            <id>development</id>
            <properties>
                <src.dir>${project.build.directory}/new-src</src.dir>
            </properties>
        </profile>
    </profiles>
</project>

那么如果我在Eclipse Luna中将一个源文件夹(点击Maven项目上的右键)添加到我的BuildPath中,其目录为“/Users/MyName/Desktop/source”,我需要写<src.dir>/Users/MyName/Desktop/source<src.dir>吗?这样一切都会顺利进行吗? - Aerox
@Tomek,我想知道上述设置是否也会在构建路径中包含Bootstrap模板? - Karen Goh

1
请参见Maven模型,在配置文件中不允许定义sourceDirectory。唯一可以做的是在插件配置中指定sourceDirectory(如果可用)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接