编译项目时maven可以更改包声明吗?

时间:2014-04-25 22:04:50

标签: java maven

好吧,我已经多次搜索过这个主题,但我还没有找到答案:maven可以在编译项目之前更改包声明吗?

我的目标是将项目A(一个API)集中在一个软件包中,每个项目B和C将对eclipse使用相同的依赖项。我的目标是,一旦maven即将编译项目,包声明将更改为该项目的特定包,然后它将编译项目。

这很有用,因为我有许多使用相同API的项目,我不断对API本身进行更改以满足我的需求,但是必须通过每个项目并再次更改它是一件痛苦的事。 / p>

如果你知道如何做到这一点,更重要的是,如果有可能,请告诉我。提前谢谢!

1 个答案:

答案 0 :(得分:0)

Google的maven replacer插件可以执行此类操作,它可以在构建时编辑您的java文件。我用它来自动生成java文件中的警告。它绝对可以用于更多邪恶的东西。

    <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>maven-replacer-plugin</artifactId>
        <version>1.3.2</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>replace</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <includes>
                <include>src/main/java/mycodegen/**/*.java</include>
            </includes>
            <regex>true</regex>
            <regexFlags>
                <regexFlag>MULTILINE</regexFlag>
            </regexFlags>
            <replacements>
                <replacement>
                    <token>^public class</token>
                    <value>@SuppressWarnings("all") public class</value>
                </replacement>
            </replacements>
        </configuration>
    </plugin>

这就是我用过的东西。它应该与Java文件中的更改包声明非常相似。到目前为止,应该有更多新版本的插件。