在 Maven 中,如何在具有自定义 src 路径时在编译中排除 src 文件?
In Maven how to exclude src files in compilation when having custom src path?
我试图将旧的 java 项目转换为 maven 构建,但在排除源文件时遇到困难:
当我为父项目设置安装目标以编译和构建所有项目的 jar 文件时,它仍然会尝试编译提到的排除的 java 文件。以下是我对该项目的 pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.app</groupId>
<artifactId>CCAPS.Impl</artifactId>
<version>1.0.0</version>
<parent>
<groupId>com.app</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<relativePath>../Maven.Convertion/parent</relativePath>
</parent>
<properties>
...
</properties>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/adjudication/mapper/BusinessAddendumItemDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/ContactInfoDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/IncomeDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/IncomeItemDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/InternationalAddressDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/ReferralSourceDBOMapper.java</exclude>
<exclude>**/adjudication/interceptor/*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>${project.basedir}/src/net/ccapsws/ds/adjudication</sourceDirectory>
</build>
</project>
排除的最后一行是编译时抛出错误的地方:
[ERROR] \Maven Convertion\CCAPSAdjudication\DataSource.CCAPS.Impl\src\net\gc\ccapsws\ds\adjudication\interceptor\CCAPSDTOAuditInterceptor.java:[8,46] error: package net.ccapsws.validation.dictionary does not exist
问题是我尝试使用排除声明,但由于 src 路径是自定义的(${project.basedir}/src/net/ccapsws/ds/adjudicationm,例如,是 src 路径),我怀疑 maven 没有'不认路?有人可以帮忙吗?
请注意,我不是在询问资源文件,我想编译 src 文件夹中的文件,但也愿意在编译期间排除特定的 java 文件。
编辑:还有另一个项目引用了这个项目,但在父 POM 中,我将该项目放在反应器序列中的这个项目之后,所以我认为没有其他任何地方引用这个项目。
路径问题看起来与这些链接回答的问题相似: and
我试图将旧的 java 项目转换为 maven 构建,但在排除源文件时遇到困难:
当我为父项目设置安装目标以编译和构建所有项目的 jar 文件时,它仍然会尝试编译提到的排除的 java 文件。以下是我对该项目的 pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.app</groupId>
<artifactId>CCAPS.Impl</artifactId>
<version>1.0.0</version>
<parent>
<groupId>com.app</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<relativePath>../Maven.Convertion/parent</relativePath>
</parent>
<properties>
...
</properties>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/adjudication/mapper/BusinessAddendumItemDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/ContactInfoDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/IncomeDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/IncomeItemDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/InternationalAddressDBOMapper.java</exclude>
<exclude>**/adjudication/mapper/ReferralSourceDBOMapper.java</exclude>
<exclude>**/adjudication/interceptor/*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>${project.basedir}/src/net/ccapsws/ds/adjudication</sourceDirectory>
</build>
</project>
排除的最后一行是编译时抛出错误的地方:
[ERROR] \Maven Convertion\CCAPSAdjudication\DataSource.CCAPS.Impl\src\net\gc\ccapsws\ds\adjudication\interceptor\CCAPSDTOAuditInterceptor.java:[8,46] error: package net.ccapsws.validation.dictionary does not exist
问题是我尝试使用排除声明,但由于 src 路径是自定义的(${project.basedir}/src/net/ccapsws/ds/adjudicationm,例如,是 src 路径),我怀疑 maven 没有'不认路?有人可以帮忙吗?
请注意,我不是在询问资源文件,我想编译 src 文件夹中的文件,但也愿意在编译期间排除特定的 java 文件。
编辑:还有另一个项目引用了这个项目,但在父 POM 中,我将该项目放在反应器序列中的这个项目之后,所以我认为没有其他任何地方引用这个项目。
路径问题看起来与这些链接回答的问题相似: and