37

我想为特定的 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”一样。生命周期中的其他一切都应该正常运行。如果这种方法有缺陷,有人能指出我正确的方向吗?

4

2 回答 2

76

根据文档,您只能更改<build>配置文件中的几个参数,而<sourceDirectory>不是其中之一。

我会将 main 配置为<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>
于 2013-10-02T17:11:24.460 回答
0

请参阅Maven 模型,不允许sourceDirectory在配置文件中定义 a。你唯一能做的就是在插件配置中指定 sourceDirectory,假设它是可用的。

于 2013-10-02T17:05:14.253 回答