Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven中的隐式编译_Java_Maven_Javac - Fatal编程技术网

Java maven中的隐式编译

Java maven中的隐式编译,java,maven,javac,Java,Maven,Javac,使用javac,可以隐式地将java文件编译为来自特定源代码树的类文件。换句话说,可以指向给定的源代码树,只编译显式提到的java文件所需的java文件。在使用maven构建时,是否可能获得相同的功能。如果是这样的话,我该怎么做呢 编辑:我不是说定义java源文件的特定列表。标准java编译器允许一个开关,该开关使编译器本身根据导入确定依赖项。如果在类路径中找不到导入的类,那么将检查源路径以查看给定类是否有java文件。如果存在,则该java文件将添加到编译中。您必须配置maven编译器以设置要

使用javac,可以隐式地将java文件编译为来自特定源代码树的类文件。换句话说,可以指向给定的源代码树,只编译显式提到的java文件所需的java文件。在使用maven构建时,是否可能获得相同的功能。如果是这样的话,我该怎么做呢


编辑:我不是说定义java源文件的特定列表。标准java编译器允许一个开关,该开关使编译器本身根据导入确定依赖项。如果在类路径中找不到导入的类,那么将检查源路径以查看给定类是否有java文件。如果存在,则该java文件将添加到编译中。

您必须配置maven编译器以设置要包括/排除的文件:

<project>
    <build>
        <plugins>
            <plugin>
            <groupId>org.apache.maven.plugi ns</groupId>
            <artifactId>maven-compiler-plug in</artifactId>
            <configuration>
            <!-- put your configurations here -->
            </configuration>
            </plugin>
        </plugins>
    </build>
</project>

org.apache.maven.plugi ns
maven编译器插件

如果要包含/排除不同的文件集,也可以对不同的maven配置文件执行此操作。

对于maven编译器插件,可以使用包含和排除集,其中可以指定文件名的模式,以便排除和包含到编译中。您还可以使用Ant脚本


有关详细信息,请参阅。

如果您没有找到满意的答案,您可以从Maven运行Ant脚本(正如我在回答中提到的),它本身调用javac(甚至可能作为外部可执行文件,而不是标准方式)编译器;而且,正如您所说,编译器知道如何按照您想要的方式编译文件。然而,奇怪的是,Maven的行为与javac不同。默认情况下,它使用javac。也许你关闭了插件的优化功能?