繁体   English   中英

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

[英]Can maven change package declarations when compiling a project?

好吧,我已经在这个主题上搜索了很多遍,但是还没有找到答案:Maven可以在编译项目之前立即更改包声明吗?

我的目标是将项目A(它是一个API)全部放在一个包中,并且每个项目B和C在eclipse上都将使用相同的依赖项。 我的目标是,一旦maven将要编译项目,则将包声明更改为该项目的特定包,然后对其进行编译。

这很有用,因为我有许多项目都使用相同的API,并且我会不断修改API本身以适应我的需求,但是不得不仔细检查每个项目并重新进行更改是很痛苦的。

如果您有任何想法,更重要的是,如果有可能,请告诉我。 提前致谢!

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文件中的程序包声明非常相似。 到现在为止,应该有很多新版本的插件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM